注:Docker与Jenkins可以各自单独使用,也可以联合使用。
声明:浏览此博客,最好先掌握一些Docker、Jenkins的基础知识。本文不会讲Docker、Jenkins如何安装等基本知识,
相关基础知识可参考《程序员成长笔记(三)》第七章第五节。
准备工作之权限配置:
注:不同的安装Jenkins的方式,可能会有不同的权限,如果Jenkins操作Docker时权限不够,那么可参考
。
注:本人的情况是,将jenkins用户加入root组,并将/var/lib/jenkins/中的JENKINS_USER=jenkins改为了
JENKINS_USER=root,才可以的。
提示:可以当后面的步骤出现权限问题时,再回头看此准备工作。
准备工作之运行jar包的容器准备:
第一步:从Docker官方仓库搜索镜像docker search justrydeng
注:此镜像是本人制作并上传到仓库中的;所以如果想自己做同样功能的镜像,那么可以参考本人的这篇博客
在Docker中部署运行jar_justry_deng的博客-CSDN博客_docker启动jar包。
第二步:docker pull justrydeng/common-run-jar抓取(下载)此镜像
第三步:以该镜像为基础,根据项目端口,定制化生成docker容器
docker run -p 8080:8080 --name jenkins-docker-test -d justrydeng/common-run-jar
注:如果在执行此步骤时,出现了类似docker: Error response from daemon: driver这样的错误,那么需要
systemctl restart docker重启一下Docker。
说明:因为知道要运行的jar包需要的端口为docker中的8080,所以本人将docker中的8080端口,与宿主机的端
口(这里干脆也8080)映射起来。其中,指令-p 8080/8080里,前面的8080为宿主机端口,后面的8080为容
器端口。
此时,我们已经创建了一个名为jenkins-docker-test的容器了。如果此时我们只想在docker中运行jar包的话,那么只需将xxx.jar包改名为app.jar,放入jenkins-docker-test容器的/jarAppDir/目录下,再start启动容器即可实现docker中运行jar包了。如果需要更新jar包,那么需要:第一步:stop该容器,第二步:以新的app.jar替换容器中旧的app.jar,第三步:再次start启动该容器即可。
配置Jenkins
第一步:新建一个maven风格的任务
第二步:配置各个参数
给出上图中涉及到的指令,文字版:
# 将当前位置切换至项目根目录下
cd /var/lib/jenkins/workspace/jenkins-docker-同一机器中/
# maven打包(可以将mvn clean 、 mvn install 合并到一起写)
mvn clean install
给出上图中涉及到的指令,文字版:
# stop该jar包对应的容器
docker stop jenkins-docker-test
# 将新的jar包拷贝至容器中的指令目录下,并重命名为jar.jar (注:如果该目录下本来就有jar.jar,那么原jar包会被替换)
docker cp /var/lib/jenkins/workspace/jenkins-docker-同一机器中/target/jenkins-0.0.1-SNAPSHOT.jar jenkins-docker-test:/jarAppDir/app.jar
# start该jar包对应的容器即可
docker start jenkins-docker-test
保存。
第三步:构建
第四步:构建成功后,访问http://10.8.109.60:8080/jenkins/test?name=JustryDeng
给出controller对应方法:
给出修改后的controller对应方法: