美文网首页Java 杂谈Dockerweb前端杂文
使用docker搭建gitlab以及ci平台,完整版本(使用sp

使用docker搭建gitlab以及ci平台,完整版本(使用sp

作者: 老王的御用替身 | 来源:发表于2018-09-19 11:43 被阅读1次

    整体步骤概括

    • 准备两台虚拟机,最小安装,配置ip能ping通外网即可,安装docker
    • 一台虚拟机跑gitlab,一台跑gitlab runner和springboot项目
    • 将springboot项目打成systemctl系统服务
    • 编写gitlab.ci自动构建你的springboot项目

    自动构建的基本思路是当dev分支合并到master分支时,触发构建,自动发布,下面是详细步骤

    1.通过docker、docker-compose搭建gitlab

    使用的是一个开源库

    https://github.com/sameersbn/docker-gitlab

    这一步基本参考这个库就能搭建成功了

    • 确定你安装好了docker和docker-compose


      1
    • 下载官方docker-compose文件
      wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml
      修改两个地方
      2
      gitlab_port就是你访问的端口地址,gitlab_host则是你配置的虚拟机ip
      这时你的目录结构应该是这样的
      3
      cd至gitlab目录下执行命令docker-compose up等待docker镜像安装完成
      完成后等待几分钟gitlab初始化,访问http://yourdomain:10080,重置密码
      4
      这里我已经建好项目了,到此 第一步搭建gitlab服务已经完成接下来是第二步

    2.注册gitlab-runner完成项目自动构建

    • 新建dev分支


      5

      checkout你的dev分支,开发只对dev分支操作,master分支则用于ci构建

    • 编写gitlab-ci.yml
    pages:
      stage: deploy
      script:
        - cd /gitlab-project/demo
        - git pull
        - mvn package
        - systemctl restart demo
      only:
        - master
    

    可以看到ci只针对master分支,即dev分支merge至master分支时 触发构建

    • 搭建runner服务器
      前面说到需要准备两台服务器,一台搭建gitlab,一台搭建runner
      gitlab-runner比较简单,查一查如何安装即可,安装完毕输入
    gitlab-ci-multi-runner register
    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    #这里输入你的gitlab域名
    # executor输入shell
    

    域名和token在Specific Runners这里


    6
    注册完毕后 7
    可以看到这里有显示,你应该只有一个
    接下来是将springboot项目做成系统服务systemctl这部分内容自己百度,贴一下自己的demo.service
    Description=demo
    
    [Service]
    WorkingDirectory=/gitlab-project/demo
    PrivateTmp=true
    Type=simple
    ExecStart=/usr/java/jdk1.8.0_181-amd64/bin/java -jar /gitlab-project/demo/target/demo-0.0.1-SNAPSHOT.jar -java.io.tmpdir=/gitlab-project/tmp --spring.config.location=/gitlab-project/demo/target/classes/application.yml
    
    ExecStop=kill -9 `ps -ef|grep java|grep -v grep|grep demo|awk '{print $2}'`
    
    [Install]
    WantedBy=multi-user.target
    

    gitlab-project/demo是这个demo项目的路径,在进行ci前 你应该git clone项目至对应路径

    3. 最后一步啦

    现在项目的某个接口返回数据是这样的 image.png 我们修改一下 image.png

    提交至dev分支


    image.png
    可以看到刚刚我们提交的请求已经出现在项目主页了,我们合并他 image.png

    选择对应的job查看,已经在跑了



    image.png curl一下 image.png

    小伙伴们还不赶紧试试?

    相关文章

      网友评论

        本文标题:使用docker搭建gitlab以及ci平台,完整版本(使用sp

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