Jenkins 容器化实践:Docker 部署与 CI/CD 流水线配置
容器启动命令
docker run -d \ --name jenkins \ -p 8080:8080 \ -p 50000:50000 \ -v /etc/config/jenkins_home:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/usr/bin/docker \ -e TZ=Asia/Shanghai \ jenkins/jenkins:lts
设置权限:
# 在宿主机创建目录并设置权限 sudo mkdir -p /etc/config/jenkins_home sudo chown -R 1000:1000 /etc/config/jenkins_home sudo chmod -R 755 /etc/config/jenkins_home
流水线脚本
pipeline { agent any environment { IMAGE_NAME = "yourimagename" IMAGE_TAG = "${env.BUILD_ID}" DOCKER_REGISTRY_CREDENTIALS = 'your key' } stages { stage('Checkout') { steps { git branch: 'master', credentialsId: 'your key', url: 'your git url' } } stage('Publish') { steps { script { docker.image('mcr.microsoft.com/dotnet/sdk:6.0').inside('-u root -v /var/jenkins_home/workspace:/workspace') { dir('your proj') { sh 'dotnet restore' sh 'dotnet publish -c Release -o publish' } } } } } stage('Docker Build & Push') { steps { script { docker.withRegistry('https://registry.cn-hangzhou.aliyuncs.com', "${DOCKER_REGISTRY_CREDENTIALS}") { def app = docker.build("${IMAGE_NAME}:${IMAGE_TAG}", ".") app.push() } } } } } }
如果需要自动部署可以在后面继续加stage
stage('Deploy') { steps { script { sh """ docker stop you_container || true docker rm you_container || true docker pull ${IMAGE_NAME}:${IMAGE_TAG} docker run -d \ --name you_container \ --restart always \ ${IMAGE_NAME}:${IMAGE_TAG} """ } } }
另外,在线上服务器则只需要拉取镜像部署即可。

浙公网安备 33010602011771号