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

为了做持续的集成和部署,引入了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部署以后再介绍。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值