Jenkins与Docker的自动化CI/CD流水线实战( 三 )


 
修改*/master为$Tag,Tag是上面动态获取的变量名,表示根据用户选择打代码版本 。
设置maven构建命令选项:
clean package -Dmaven.test.skip=true

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
利用pom.xml文件构建项目 。
在Jenkins本机镜像构建与推送到镜像仓库,并SSH远程连接到Docker主机使用推送的镜像创建容器:
上图中,在Jenkins主机执行的Shell命令如下:
REPOSITORY=192.168.0.15:5000/solo:${Tag}
# 构建镜像
cat > Dockerfile << EOF
FROM 192.168.0.15:5000/tomcat-85:latest
RUN rm -rf /usr/local/tomcat/webapps/ROOT
COPY target/*.war /usr/local/tomcat/webapps/ROOT.war
【Jenkins与Docker的自动化CI/CD流水线实战】ENV PATH /usr/local/tomcat/bin:$PATH
CMD ["catalina.sh", "run"]
EOF
docker build -t $REPOSITORY .
# 上传镜像
docker push $REPOSITORY
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
上图中,SSH远程Docker主机执行的Shell命令如下:
REPOSITORY=192.168.0.15:5000/solo:${Tag}
# 部署
docker rm -f blog-solo |true
docker image rm $REPOSITORY |true
docker container run -d --name blog-solo -v /usr/local/jdk1.8:/usr/local/jdk1.8 -p 88:8080 $REPOSITORY
注:容器名称blog-solo,暴露宿主机端口88,即使用宿主机IP:88访问blog-solo项目 。
blog-solo项目已配置完成,开始构建:
Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 

Jenkins与Docker的自动化CI/CD流水线实战

文章插图
 
选择tag,开始构建:
 
点击左下角构建历史里,右击第一个查看控制台输出:
 
浏览器访问solo项目:http://192.168.0.14:88
Jenkins与Docker的自动化CI/CD流水线实战

文章插图




推荐阅读