美文网首页持续构建Dockerjenkins
Github+Jenkins+Docker实现CI

Github+Jenkins+Docker实现CI

作者: 凌风TM | 来源:发表于2018-09-09 21:37 被阅读452次
    Photo by Dang Nhz on Unsplash

    Note:本文所使用的编辑器是STS;关于Jenkins+Docker构建DooD可参考上一篇文章DooD:Docker+Jenkins;需要在Github已经注册有账号,其他的代码托管平台略有不同。

    1 构建SpringBoot项目

    • 在STS中选择New->Spring starter project->Next->Finish,新建一个Spring Boot 项目,结构如下:
      project_structure
    • 此处的application.yml中,为了防止出现端口冲突,项目启动端口改为8001
    server:
      port: 8001
    
    • 添加了一个 Restful 风格的 Controller,代码如下:
    @RestController
    public class HelloController {
        
        @GetMapping(path = "/hello")
        public String hello() {
            return "Hello Jenkins";
        }
    }
    
    • 项目根目录添加Dockerfile
    FROM openjdk:8-jdk-alpine
    # Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
    VOLUME /tmp
    # 将jar包copy到容器里
    COPY target/*.jar app.jar
    # 为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source
    ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
    • 启动项目,使用浏览器或者postman访问http://localhost:8001/hello,如下所示

      postman
    • 将该项目提交到Github上

    2 Jenkins全局工具配置,包括JDK,Maven ,Git,Mail等

    登陆Jenkins,进入如下首页


    Jenkins 首页
    • 配置JDK

    点击系统管理->全局工具配置->新增JDK,可以选择下面四种不同的安装方式,默认选择从java.sun.com安装,这个可以根据需要自行选择。

    JDK
    • 配置Maven

    点击系统管理->全局工具配置->Maven安装,同样也有四种安装方式,默认选择从Apache安装

    Maven
    • 配置Git

    点击系统管理->全局工具配置->Add Git->Git,此处的Path to Git executable可以指定为Jenkins所在操作系统已有的git的执行路径,此处我选择自动安装

    Git
    • 配置Mail

      点击系统管理->系统设置,此处首先需要配置Jenkins Location中的系统管理员邮件地址,否则发送邮件会出问题

      Mail_admin

      然后,在下面的Extended E-mail Notification,进行邮箱信息的配置,包括邮箱服务器,用户名,密码或授权码,使用SSL及对应的端口,还可以配置邮箱默认的接收人,定制化邮箱内容等功能。

    Mail

    最后,可以通过邮件通知测试上一步实现的邮箱信息是否正确,并且可以发送一封测试邮件到指定邮箱。

    Test_mail

    3 在Jenkins中新建Job,实现CI

    • 点击新建一个job
    New_job
    • 配置源码管理->Git,此处填写代码托管平台地址(GitHub , Gitlab 等)和对应的Credentials
    GitHub
    • 使用Maven命令打包项目,如下
    Maven_command
    • 执行 docker 命令,build image ,run container,下面的脚本在首次构建时会出错,因为还没有镜像和容器,可以先注释掉第一行和第二行。
    Docker_command
    • 点击增加构建后步骤—>Editable Email Notification,重点关注Triggers,可针对不同情况发送给不同的收件人不同的主题
    Mail_notification Mail_triggers
    • 配置完以上步骤,点击Save后,点击立即构建,开始构建
    Job_start
    • 等待构建完成,你在docker中可以看到构建好的container,访问http://Docker宿主机_IP:8001/hello,能正常返回则表示部署完成
    docker_info.png
    • 同时,你也应该收到了部署成功的邮件(邮件内容未经过优化,如有必要可自定义模板)
    mail.png

    至此,构建完成,后续可设置钩子,每次提交都重新构建;还可以通过Jenkins相关插件完成shell脚本的工作;也可以使用maven-dockerfile-plugin完成本地到docker engine的build images以及run container,后续的文章会讲到这些内容。

    相关文章

      网友评论

        本文标题:Github+Jenkins+Docker实现CI

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