Bootstrap

Docker持续集成(八)jenkins之自动化打包、部署

 上文我们讲述了jenkins插件安装及配置 Docker持续集成(七)jenkins之插件安装及配置

  本文我们讲解自动化打包、部署

 一、创建任务

二、源码管理,选择Git

三、Build

注意点:

1) 我配置的git路径下面是多个项目,这里配置的jack-discovery-eureka工程,所以Root Pom配置的是"jack-discovery-eureka/pom.xml",如果你直接配置的是工程的git地址,则Root Pom这里直接填写"pom.xml"即可

2) 下面命令不要在最前面加"mvn",否则会报错。docker:build 表示的是创建镜像

 

四、Post Steps

4.1  点击Add post-build step, 选择执行 Execute shell

4.2  输入shell命令,这里可以直接填写命令,也可以执行 shell 脚本,我这里添加了2个shell串口。

说明:

第一个是推送镜像到私有仓库

第二个是执行一个启动脚本、脚本内容如下:

# 判断是否拉取镜像
docker images 192.168.1.8:5000/demo:0.0.1-SNAPSHOT &> /dev/null
if [ $? -ne 0 ] 
then
    docker pull 192.168.1.8:5000/demo:0.0.1-SNAPSHOT
else
    echo "images is exists !!"
fi


# 判断是否启动该容器
docker ps | grep demo-test
if [ $? -ne 0 ] 
then
 echo "启动进程"
 docker run -d -p 8080:8080 --name=demo-test --privileged --restart=always 192.168.1.8:5000/demo:0.0.1-SNAPSHOT
else
 echo "重启进程"
fi

总结:

1) 我在jenkins执行shell命令"docker ps | grep demo-test"会发生错误,所以我用的一个脚本命令来执行;

2) shell命令if else $? -ne 命令 学习了解,见博文:centos7 常用shell 命令整理

3) 这里启动单个工程可以这样玩、如果启动的工程有依赖工程怎么处理?可以一个一个的去启动,但是效率是否不太高?是否有更好的方式?

五、启动任务

5.1 主界面启动任务

5.2 查看日志

5.3 日志界面

六、私有仓库查看镜像

七、查看镜像和容器,检查是否启动成功

;