196人参与 • 2025-02-14 • 云虚拟主机
docker 在 ci/cd 流程中扮演着关键角色,解决了传统开发流程中的环境不一致问题,具有以下优势:
安装 docker 确保主机上已安装 docker。
sudo apt-get update sudo apt-get install -y docker.io
安装 jenkins
sudo apt-get install -y openjdk-11-jdk wget wget -q -o - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get install -y jenkins sudo systemctl start jenkins
安装 docker 插件
配置 jenkins 用户权限
sudo usermod -ag docker jenkins sudo systemctl restart jenkins
使用 jenkins pipeline 构建和部署 docker 镜像。
示例 jenkinsfile:
pipeline {
agent any
environment {
docker_image = 'myapp:latest'
docker_registry = 'dockerhub_username'
}
stages {
stage('checkout code') {
steps {
echo "checking out code..."
checkout scm
}
}
stage('build docker image') {
steps {
echo "building docker image..."
sh "docker build -t ${docker_image} ."
}
}
stage('push to docker hub') {
steps {
echo "pushing image to docker hub..."
withcredentials([string(credentialsid: 'dockerhub-pass', variable: 'docker_pass')]) {
sh "echo ${docker_pass} | docker login -u ${docker_registry} --password-stdin"
sh "docker push ${docker_registry}/${docker_image}"
}
}
}
stage('deploy to server') {
steps {
echo "deploying application..."
sh "docker run -d --name myapp-container -p 8080:8080 ${docker_image}"
}
}
}
}gitlab-ci.yml:gitlab ci 的配置文件,定义了流水线(pipeline)中各阶段的任务。安装 gitlab runner:
sudo apt-get install -y gitlab-runner
注册 runner 并绑定项目:
sudo gitlab-runner register
使用 gitlab ci 自动化构建和发布 docker 镜像。
示例 .gitlab-ci.yml:
stages:
- build
- test
- deploy
variables:
docker_image: myapp:latest
docker_registry: dockerhub_username
before_script:
- docker login -u $docker_registry -p $docker_password
build:
stage: build
script:
- echo "building docker image..."
- docker build -t $docker_registry/$docker_image .
- docker push $docker_registry/$docker_image
test:
stage: test
script:
- echo "running tests..."
- docker run --rm $docker_registry/$docker_image pytest
deploy:
stage: deploy
script:
- echo "deploying application..."
- docker pull $docker_registry/$docker_image
- docker run -d --name myapp-container -p 8080:8080 $docker_registry/$docker_image使用自动构建服务
触发条件
jenkinsfile,实现自动化构建、推送和部署。.gitlab-ci.yml 文件,实现 ci/cd 流水线。通过将 docker 与 ci/cd 工具(jenkins、gitlab ci)集成,可以实现代码的自动构建、测试和部署,极大提升开发效率与部署速度。掌握这些技术并结合实际场景进行优化,是现代开发团队不可或缺的技能。
到此这篇关于docker集成ci/cd的项目实践的文章就介绍到这了,更多相关docker集成ci/cd内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论