基于jenkins构建应用的docker镜像做持续集成和部署
2017-04-27 10:11
821 查看
为了做持续的集成和部署,引入了jenkins,利用jenkins来构建应用的docker镜像并push到私有仓库,然后再基于应用的docker镜像来发布项目,这样减少了很多的手动操作,基本能实现持续集成和持续部署。项目基本骨架
该项目是gradle的项目,代码类似于https://github.com/JThink/SkyEye/tree/master/skyeye-alarm,这里除了源码和gradle等文件,加了一个image文件夹,主要是用来做构建镜像的Dockerfile和其他相关需要的文件(CMD是备份,构建的时候没有实际的作用)run.sh
镜像的启动脚本
#!/bin/bash
cd /home/deploy/bane-0.2.0source /etc/profile.d/java.shnohup bin/bane &tail -f /opt/xxx/xxx-config/monitor-center/bane/bane.propertiesbane.properties
具体的配置文件,由于dev、qa、prod环境所需的配置值不同,所以这边需要单独提供某个环境的配置文件。项目如果使用的是配置中心,那么这个文件就不需要了
Dockerfile
具体的构建镜像文件
同:http://blog.csdn.net/jthink_/article/details/70260105
# build the base image: jdk# this is the docker file, use the ubuntu 14.04-jdk7# VERSION 1# Author: jthink
# the basic imageFROM 192.168.xx.xx:5000/ubuntu:14.04-jdk7# maintainerMAINTAINER jthink xxx@xxx.com# copy the fileRUN mkdir -p /home/deployRUN mkdir -p /opt/xxx/xxx-config/monitor-center/baneADD ./bane-0.1.0.tar /home/deployADD ./bane.properties /opt/xxx/xxx-config/monitor-center/baneCOPY run.sh /run.shRUN chmod +x /run.sh# CMD to startCMD ["/run.sh"]jenkins构建
基于jenkins进行镜像的构建基本信息
源码
构建
这里解释下
首先进行项目的打包,gradle clean distTar -x test(以前的项目都是gradle clean distZip -x test,由于在镜像的ADD命令中只能解压.tar的文件,所以这里改了打包方式,之间的差别就是.tar的文件稍微大一点)
然后进行项目的镜像构建,首先将tar包复制到image文件夹下,然后读取到version和project name信息,然后登录到私有仓库,执行build命令进行构建,最后push到私有仓库
部署
ssh到docker leader那台机器,执行docker service create命令即可
当多个项目组成了一个应用,需要同时部署,那么我们可以每个项目都构建出镜像,然后再创建一个jenkins用来部署,使用compose文件来部署
具体用docker swarm还是k8s部署以后再介绍。
该项目是gradle的项目,代码类似于https://github.com/JThink/SkyEye/tree/master/skyeye-alarm,这里除了源码和gradle等文件,加了一个image文件夹,主要是用来做构建镜像的Dockerfile和其他相关需要的文件(CMD是备份,构建的时候没有实际的作用)run.sh
镜像的启动脚本
#!/bin/bash
cd /home/deploy/bane-0.2.0source /etc/profile.d/java.shnohup bin/bane &tail -f /opt/xxx/xxx-config/monitor-center/bane/bane.propertiesbane.properties
具体的配置文件,由于dev、qa、prod环境所需的配置值不同,所以这边需要单独提供某个环境的配置文件。项目如果使用的是配置中心,那么这个文件就不需要了
Dockerfile
具体的构建镜像文件
同:http://blog.csdn.net/jthink_/article/details/70260105
# build the base image: jdk# this is the docker file, use the ubuntu 14.04-jdk7# VERSION 1# Author: jthink
# the basic imageFROM 192.168.xx.xx:5000/ubuntu:14.04-jdk7# maintainerMAINTAINER jthink xxx@xxx.com# copy the fileRUN mkdir -p /home/deployRUN mkdir -p /opt/xxx/xxx-config/monitor-center/baneADD ./bane-0.1.0.tar /home/deployADD ./bane.properties /opt/xxx/xxx-config/monitor-center/baneCOPY run.sh /run.shRUN chmod +x /run.sh# CMD to startCMD ["/run.sh"]jenkins构建
基于jenkins进行镜像的构建基本信息
源码
构建
这里解释下
首先进行项目的打包,gradle clean distTar -x test(以前的项目都是gradle clean distZip -x test,由于在镜像的ADD命令中只能解压.tar的文件,所以这里改了打包方式,之间的差别就是.tar的文件稍微大一点)
然后进行项目的镜像构建,首先将tar包复制到image文件夹下,然后读取到version和project name信息,然后登录到私有仓库,执行build命令进行构建,最后push到私有仓库
部署
ssh到docker leader那台机器,执行docker service create命令即可
当多个项目组成了一个应用,需要同时部署,那么我们可以每个项目都构建出镜像,然后再创建一个jenkins用来部署,使用compose文件来部署
具体用docker swarm还是k8s部署以后再介绍。
相关文章推荐
- 在DaoCloud平台部署基于Docker镜像的应用
- jenkins构建Docker 镜像(基于Jenkins的Docker镜像及Jenkins插件)
- jenkins构建Docker 镜像(基于Jenkins的Docker镜像及Jenkins插件)
- CentOS6.8下Jenkins+maven+tomcat+git+shell自动构建、部署web应用环境的搭建
- Jenkins集成Docker实现镜像构建和线上发布
- 使用Dockerfile文件构建基于centOS系统的tomcat镜像
- 使用Docker来加速构建Android应用的基本部署思路解析
- 基于Jenkins,docker实现自动化部署(持续交互)
- 基于-docker的jenkins-gitlab实现自动部署
- 自动化部署基于 Docker 的 Rails 应用
- openshift/origin学习记录(10)——基于已有镜像部署应用
- 基于docker-compose的多应用部署
- 基于dockerfile构建镜像
- daocloud中构建一个hallo docker网页服务器的docker镜像并部署
- jenkins配置应用自动部署到docker
- 【Jenkins教程二】基于Linux实现Jenkins+maven+tomcat的自动化构建部署项目
- 基于docker的应用服务部署
- docker实战2 (docker swarm的应用,docker集群的构建,在docker集群中部署服务的创建与更新)
- 利用jenkins自动构建基于docker的tomcat容器
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署