jenkins+Docker+maven项目持续构建及docker化

 1、安装配置Jenkins服务和Docker服务(不赘述)  

2、在Jenkins依托的宿主机上创建一个构建脚本(/home/skyform/项目名/rollingupdate.sh)

3、编写脚本:

   #!/usr/bin/sh
   dockerHost=IP:端口号       
   imageName=xxxx
   imageTag=v1
   containerName=xx
   ports1=xxxx:xxxx
   ports2=xxxx:xxxx
   ports3=xxxx:xxxx
   dockerfilePath=/var/lib/jenkins/workspace/Jenkins项目名/Dockerfile   (Dockerfile已经由项目人员编号并上传到了git)
   warPath=/var/lib/jenkins/workspace/Jenkins项目名/部署的maven项目文件/target/项目名.war  

   #在Jenkins项目目录下创建build文件并将war包和Dockerfile拷贝进去
   cd /var/lib/jenkins/workspace/Jenkins项目名/
   rm -rf build
   mkdir build
   docker login harbor:5000 -uadmin -ppassword
   cp $dockerfilePath ./build/
   cd build
   cp $warPath .

   #删除部署的物理机上已有的同名容器(保证以后的容器都是最新的git内容)
   docker -H $dockerHost rm -f  $containerName

   #构建镜像
   docker build -t $imageName:$imageTag .

   #删除镜像仓库里的镜像并将最新的镜像push上去
   curl -uadmin:password -IX DELETE http://harbor/api/repositories/skyform/rms/tags/v1
   docker push $imageName:$imageTag

   #创建容器并清除所有tag为<none>的镜像

   docker  -H $dockerHost pull $imageName:$imageTag
   docker -H $dockerHost run -d --restart=always -p $ports1 -p $ports2 -p $ports3 --hostname $containerName --name $containerName $imageName:$imageTag
   docker rmi -f $(docker images | grep "<none>" | awk "{print \$3}")


4、在Jenkins上新建一个maven项目并配置好git地址、触发器、build等(详细的配置过程可参考我的另一篇文章:http://blog.csdn.net/juixg/article/details/78059980)

5、在pre step中加入Execute shell方式并输入sh .home/skyform/项目名/rollingupdate.sh运行脚本

6、即可开始构建

           

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值