基于jenkins构建应用的docker镜像做持续集成和部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JThink_/article/details/70842412
为了做持续的集成和部署,引入了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.0
source /etc/profile.d/java.sh
nohup bin/bane &
tail -f /opt/xxx/xxx-config/monitor-center/bane/bane.properties
    • bane.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 image
FROM 192.168.xx.xx:5000/ubuntu:14.04-jdk7
# maintainer
MAINTAINER jthink xxx@xxx.com
# copy the file
RUN mkdir -p /home/deploy
RUN mkdir -p /opt/xxx/xxx-config/monitor-center/bane
ADD ./bane-0.1.0.tar /home/deploy
ADD ./bane.properties /opt/xxx/xxx-config/monitor-center/bane
COPY run.sh /run.sh
RUN chmod +x /run.sh
# CMD to start
CMD ["/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部署以后再介绍。
展开阅读全文

没有更多推荐了,返回首页