博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)
阅读量:6723 次
发布时间:2019-06-25

本文共 1851 字,大约阅读时间需要 6 分钟。

整体步骤概括

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

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

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

使用的是一个开源库

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

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

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

  • 新建dev分支
    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 registerPlease enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):#这里输入你的gitlab域名# executor输入shell复制代码

域名和token在Specific Runners这里

注册完毕后
可以看到这里有显示,你应该只有一个 接下来是将springboot项目做成系统服务systemctl这部分内容自己百度,贴一下自己的demo.service

Description=demo[Service]WorkingDirectory=/gitlab-project/demoPrivateTmp=trueType=simpleExecStart=/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.ymlExecStop=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. 最后一步啦

现在项目的某个接口返回数据是这样的

我们修改一下

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

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

curl一下

小伙伴们还不赶紧试试?

转载于:https://juejin.im/post/5ba1c6d65188255c8b6ee5bc

你可能感兴趣的文章
C中的野指针—如何避免
查看>>
matlab 获得corner点(未完待续)
查看>>
两个栈实现队列,开始做错了 —— 剑指Offer
查看>>
BERT深度解析
查看>>
求最佳会议地点
查看>>
【Todo】深入理解Java虚拟机 读书笔记
查看>>
m_Orchestrate learning system---二十四、thinkphp里面的ajax如何使用
查看>>
python datatime日期和时间值模块
查看>>
VMware 虚拟化编程(14) — VDDK 的高级传输模式详解
查看>>
讨论java中调用函数,形参的传递是值传递还是引用传递的问题
查看>>
HDFS 常用命令行:
查看>>
命名空间在扩展方法中的妙用
查看>>
企业生产环境集群稳定性-HA就行吗?
查看>>
jQuery扩展
查看>>
二叉搜索树与双向链表
查看>>
(2016-09-01)SQL批量生成随机字符串
查看>>
Can you find it?
查看>>
mysql配置文件
查看>>
解决应用服务器变为集群后的Session问题
查看>>
【BZOJ】2406 矩阵
查看>>