jenkins+docker+pipeline回滚java项目

1 设置choice parameter 参数

2 设置active choices reactive parameter


这个选项默认是没用的,需要安装插件 Active Choices Plug-in
脚本内容如下:
只要上面选择demo-test这个项目,就返回a这个变量的结果


a=['bash','-c',"cat /tmp/docker.version"].execute().text.readLines()

if (service_name.equals("demo-test")){
     return a
} else {
   return ["选择对应的项目"]
}

3 pipeline设置

回滚大致两个步骤,
1 停止现在的容器
2 启动上一个docker镜像

脚本如下:

node() {
stage("stop and start"){
    withCredentials([usernamePassword(credentialsId: "${docker_registry_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
sh '''
containerPool=registry.cn-beijing.aliyuncs.com/ganen
echo "停止目前的服务"
ssh root@101.200.209.128 "docker rm -f ${service_name}"
echo "启动上一个版本的docker"
ssh root@101.200.209.128 "docker run -d -p 8080:8081 --name ${service_name} -v /home/ops/${service_name}/:/data/  ${containerPool}/${service_name}:${version}"
ssh root@101.200.209.128 "docker ps |grep ${service_name}"
sleep 5
ssh root@101.200.209.128 "curl http://172.17.195.94:8080/getAppName"
curl http://101.200.209.128:8080/getAppName
'''
    }
 } 
}



4 构建回滚任务

选择对应的项目和docker版本就是每次构建时的tag

回滚成功,如下所示:

posted @ 2020-07-07 17:26  huningfei  阅读(613)  评论(0)    收藏  举报
levels of contents