美文网首页运维监控
Jenkins+Maven+Docker持续构建0-总体配置

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

作者: K1024 | 来源:发表于2018-06-03 22:53 被阅读199次

    设计目标

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


      整体流程.jpg

    演示环境

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


        阿里云托管.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-jdk.jpg
    • 配置MAVEN:这里的Maven配置,就是为了后续在调用操作系统的Maven进行war包的生成,这里我配置了两个版本的Maven供任务构建时候选择使用,都是3.0以上版本


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


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


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

    #这里很关键的是我们pom.xml文件指定了我们的项目必须使用jdk1.6编译,这样就解决了用指定版本jdk编译的问题了
    mvn clean package -Dmaven.test.skip=true
    
    • 将构建的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就可以完成自动化构建容器镜像的操作了。从代码编译到镜像构建全过程打通。


      job.jpg

    相关文章

      网友评论

        本文标题:Jenkins+Maven+Docker持续构建0-总体配置

        本文链接:https://www.haomeiwen.com/subject/naussftx.html