【工作效率】使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)
整体步骤概括
- 准备两台虚拟机,最小安装,配置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 register Please 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/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. 最后一步啦
现在项目的某个接口返回数据是这样的
我们修改一下
提交至dev分支
可以看到刚刚我们提交的请求已经出现在项目主页了,我们合并他
选择对应的job查看,已经在跑了
curl一下
小伙伴们还不赶紧试试?

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
开源堡垒机jumpserver搭建
概述 之前说了国产良心kodexplorer,今天再说一个国内比较好的开源项目jumpserver,除此之外还可以的国内开源项目我觉得就是宝塔面板了。废话不多说上教程搭建。虽然说你可以看下面的教程不用听我瞎扯 http://docs.jumpserver.org/zh/docs/step_by_step.html 虽然说我的教程基本都是复制这个文档的,但是有的地方还是不一样的 前期初始化 首先关闭selinux vim /etc/selinux/config SELINUX=enforcing 改为 SELINUX=disabled 之后 setenforce 0 关闭防火墙 systemctl stop firewalld systemctl disable firewalld 修改字符集 localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 export LC_ALL=zh_CN.UTF-8 echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf 安装python3和python编译的依赖环境 首先安装变异py...
- 下一篇
Java面试题整理《中》
一、数据库部分 简单介绍下关系数据库三范式 范式指的是数据库设计时要遵循的三个规范,但并不是强制式的,这三个规范呈阶梯式的关系,现有第一层然后在第一层的基础上有第二层... 第一范式规定列数据不可分割,即实体中的某个属性不能有多个值或者重复的属性;第二范式要求每个行必须可以被唯一的区分,就是表中必须有主键存在的意思;第三范式规定表中不包含已在其他表中已包含的非主关键字信息,意思是除了外键之外不能存储其他表的数据信息。 反三范式:出于对效率和便利性的追求,可以违反三范式设置重复或可以推导出的字段,比如为了在查询订单的总价时可以不用去计算每个订单项中的单价和在订单表中设置订单总价字段。 可以简单介绍下什么是事务? 事务是并发控制的最小单位(需要满足ACID),用户定义的一个操作序列要么都执行成功,要么都执行失败,比如转账,A扣钱,B加钱,这两个操作必须是不可分割的,在commit之后也不能被干扰,将执行的代码try/catch并调用回滚rollback撤销当前事务操作。 mysql数据库的默认的最大连接数? mysql数据的默认连接数大小是100,数据库在安装时都会设置一个最大连接数,这是...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能