Jenkins+Maven+Docker持续构建0-总体配置

设计目标

  1. 整体流程
    将代码从版本管理服务器下载到Jenkins构建服务器上,通过Jenkins调用maven自动构建war包,将构建的war包直接拷贝到Dockerfile目录,通过Jenkins完成镜像的构建
    • 安装Jenkins构建服务器
    • 通过Jenkins将源码checkout到Jenkins服务器
    • 通过Jenkins构建war包
    • 通过Jenkins构建镜像
  2. 构建示意图如下

    《Jenkins+Maven+Docker持续构建0-总体配置》 整体流程.jpg

演示环境

  1. 代码托管:阿里云的云效
    • 通过git进行代码托管

      《Jenkins+Maven+Docker持续构建0-总体配置》 阿里云托管.jpg

    • 项目源码:一个通过jdk6编译的JAVA WEB 项目

      • 挑战1:jdk6编译的代码只能运行在tomcat6服务器上才不会出现编译错误;
      • 挑战2:Jenkins构建应用是jdk8+tomcat8 来运行的,编译JDK6的代码有一定的风险
    • 通过maven的方式构建的项目

  2. 代码构建环境Ubuntu 16.04 LTS
    • Jenkins版本2.120
    • JDK版本:1.8.0_171
    • MAVEN版本:3.5.3
  3. Docker镜像(基于Ubuntu)
    • JDK:1.6.0_45
    • Tomcat6
    • Ubuntu:16.04 LTS
    • Docker server version: 18.03.1-ce

整体代码构建

  1. Jenkins-全局工具配置
  • 配置JDK:这里的JDK配置,就是为了在后续jenkins构建任务的时候选择可以用来编译项目的JDK,前提是我确实在Ubuntu上安装了

    《Jenkins+Maven+Docker持续构建0-总体配置》 jenkins-jdk.jpg

  • 配置MAVEN:这里的Maven配置,就是为了后续在调用操作系统的Maven进行war包的生成,这里我配置了两个版本的Maven供任务构建时候选择使用,都是3.0以上版本

    《Jenkins+Maven+Docker持续构建0-总体配置》 jenkins-maven.jpg

  1. 构建任务的配置
  • Maven插件的基础配置
    这里需要选择jdk8,否则在调用maven的时候,会提示JDK的版本错误,min 50之类的

    《Jenkins+Maven+Docker持续构建0-总体配置》 maven info and jdk.jpg

  • 从阿里云的云效服务器上拿到git源码
    这里需要特别说明的是,从阿里云的云效代码服务器获取代码最好通过秘钥的方式,这里我直接在本地生成公钥和私钥,将公钥放到阿里云效的个人设置的SSH/My SSH Keys中,这样就可以直接checkout源码了

    《Jenkins+Maven+Docker持续构建0-总体配置》 源码设置.jpg

  • 调用maven构建war包
    这个调用就跟我们在命令行中写命令差不多,下载下来的maven项目会直接在目录中执行我们的手写命令

#这里很关键的是我们pom.xml文件指定了我们的项目必须使用jdk1.6编译,这样就解决了用指定版本jdk编译的问题了
mvn clean package -Dmaven.test.skip=true

《Jenkins+Maven+Docker持续构建0-总体配置》

  • 将构建的war包拷贝到docker镜像制作目录,启动镜像制作
#切换到maven构建的target目录中,里边是我们新构建的war包jiuchongju.war
cd target
#将jiuchongju.war强制拷贝到 /root/docker-jcj/目录下,这个目录是我们用来制作docker镜像的目录
cp -r jiuchongju.war /root/docker-jcj/
#切换到镜像的制作目录 /root/docker-jcj
cd /root/docker-jcj
#启动镜像制作,调用Dockerfile 文件制作一个jcj的镜像,这个镜像会把jiuchongju.war打包部署到镜像里供使用
docker build -t jcj .
  • 配置完成的job
    这个job就可以完成自动化构建容器镜像的操作了。从代码编译到镜像构建全过程打通。

    《Jenkins+Maven+Docker持续构建0-总体配置》 job.jpg

    原文作者:K1024
    原文地址: https://www.jianshu.com/p/f84f297cf2e2
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞