利用jenkins自动构建基于docker的tomcat容器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/fzuzhanghao1993/article/details/78246887

软件准备

jenkins-2.7.4
maven-3.0.5
git-2.8.0
gitlab-8.7.5
docker-17.05.0-ce
具体的安装本处不予缀述,该yum的yum,make install或者rpm都可以,自由选择。git最好不要用yum install git,自动安装的版本太老,会导致后续jenkins执行git命令失败。

环境搭建

这次的构建jenkins和docker并不在同一台机器上,其中jenkins机器需要有maven和git,此外jenkins还需要安装一些辅助插件。

除了默认推荐安装的插件,还包括:
Publish Over SSH (用于连接到远程服务器执行命令)
Environment Injector Plugin(用于声明变量,当然也可以直接写死在shell中,这样就不需要这个插件了)
Hudson SCP publisher plugin(SCP拷贝war包到远程主机)

配置jenkins

准备好插件后我们就可以着手配置jenkins了,首先配置全局的scp以及SSH,进入jenkins->系统管理->系统设置,找到SCP repository hosts栏目,新增目标服务器配置(用户名我改了一个假的,所以连接不上,正常情况不应该出现红字报错)
这里写图片描述
然后再配置SSH,(为了方便使用账号密码方式,多动动手配置.ssh更安全)。找到Publish over SSH栏目进行配置
这里写图片描述

全局配置好后,就可以新建一个jenkins任务,构建自由风格的软件项目,整体配置如下——
git配置
变量配置
执行maven命令打包
执行maven命令打包
构建后操作
scp
最后配置ssh登录到服务器执行shell
ssh
完整shell如下

# 容器在运行
if [[ `docker ps | grep ${SERVICE_NAME}` ]]; 
then 
    # 停止运行中的容器
    docker stop ${SERVICE_NAME}
fi;

# 启动
if [[ `docker ps -a | grep ${SERVICE_NAME}` ]]; 
then
    # 容器已创建,只重启
    docker restart ${SERVICE_NAME}
else
    # 如果容器未创建,创建容器
    docker run -d -i -t --privileged=true --name=${SERVICE_NAME} -v ${WORK_DIR}:${CONTAINER_DIR} -p 12000:8080 tomcat:7
fi;

tomcat镜像创建

其实直接执行脚本即可,本地不存在镜像docker会自动下载,但这里还是啰嗦一下。
docker搜索tomcat

docker search tomcat

选择评星最高的官方镜像下载
这里写图片描述

可以登录https://hub.docker.com/ 去查看tag。
这里我们使用tomcat:7

docker pull tomcat:7

安装成功后:
这里写图片描述

准备就绪回到我们的jenkins,执行一次立即构建(尝试失败了好多次,耐心看日志错误提示),成功。
这里写图片描述
这里写图片描述

接下来就可以配置自动构建
勾选Build periodically(节省资源可以用Poll SCM)
这里写图片描述

保存,搞定。

猜你喜欢

转载自blog.csdn.net/fzuzhanghao1993/article/details/78246887