使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)

栏目: Java · 发布时间: 6年前

内容简介:自动构建的基本思路是当dev分支合并到master分支时,触发构建,自动发布,下面是详细步骤使用的是一个开源库
  • 准备两台虚拟机,最小安装,配置ip能ping通外网即可,安装docker
  • 一台虚拟机跑gitlab,一台跑gitlab runner和springboot项目
  • 将springboot项目打成systemctl系统服务
  • 编写gitlab.ci自动构建你的springboot项目

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

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

使用的是一个开源库

github.com/sameersbn/d…

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

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

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

  • 新建dev分支
    使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)
    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这里

使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)

注册完毕后

使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)

可以看到这里有显示,你应该只有一个 接下来是将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项目至对应路径

提交至dev分支

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


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法之美

算法之美

[美]布莱恩·克里斯汀、[美]汤姆·格里菲思 / 万慧、胡小锐 / 中信出版集团 / 2018-5-20 / 59.00

我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的活动之间如何平衡,才能取得令人愉快的结果?这些看似是人类特有的难题,其实不然,因为计算机也面临同样的问题,计算机科学家几十年来也一直在努力解决这些问题,而他们找到的解决方案可以给我们很多启发。 ......一起来看看 《算法之美》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具