利用jenkins自动构建基于docker的tomcat容器
来源:互联网 发布:软件工程硕士学位证 编辑:程序博客网 时间:2024/06/13 23:25
软件准备
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任务,构建自由风格的软件项目,整体配置如下——
执行maven命令打包
构建后操作
最后配置ssh登录到服务器执行shell
完整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:7fi;
tomcat镜像创建
其实直接执行脚本即可,本地不存在镜像docker会自动下载,但这里还是啰嗦一下。
docker搜索tomcat
docker search tomcat
选择评星最高的官方镜像下载
可以登录https://hub.docker.com/ 去查看tag。
这里我们使用tomcat:7
docker pull tomcat:7
安装成功后:
准备就绪回到我们的jenkins,执行一次立即构建(尝试失败了好多次,耐心看日志错误提示),成功。
接下来就可以配置自动构建
勾选Build periodically(节省资源可以用Poll SCM)
保存,搞定。
- 利用jenkins自动构建基于docker的tomcat容器
- Docker系列之二:基于容器的自动构建
- 基于Jenkins的自动构建系统开发
- 基于Jenkins的自动构建系统开发
- 基于Jenkins的自动构建系统开发
- jenkins构建Docker 镜像(基于Jenkins的Docker镜像及Jenkins插件)
- jenkins构建Docker 镜像(基于Jenkins的Docker镜像及Jenkins插件)
- 基于容器的自动构建——Docker在美团的应用
- docker构建jenkins镜像和容器
- Jenkins + Github持续集成构建Docker容器
- Jenkins持续集成构建Docker容器
- 使用Jenkins来构建Docker容器
- Jenkins + Unity + Android构建基于Unity的自动编译环境
- .net 基于Jenkins的自动构建系统开发
- 基于git maven jenkins的自动构建发布系统三
- 基于Tomcat的自动构建和发布
- docker 的自动构建
- Jenkins基于Docker的安装
- 交叉编译iftop
- Spring Cloud Config-快速开始
- JAVA递归实现菲波那切数列数列
- angular
- spring、spring-mvc、mybatis整合
- 利用jenkins自动构建基于docker的tomcat容器
- java的优先队列注意事项
- ORA-12560: TNS: 协议适配器错误
- 江苏淳客网络在第五届“创响江苏 赢在南京”创业大赛中获得一等奖!
- 生产者和消费者问题c++(操作系统)
- 收集一些工作中常用的经典SQL语句
- 使用Echarts过程中问题小结
- Java题目详解
- IOS开发中利用AudioToolbox播放系统声音