【工作效率】使用docker搭建gitlab以及ci平台,完整版本(使用springboot项目演示)

简介:

整体步骤概括

  • 准备两台虚拟机,最小安装,配置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

小伙伴们还不赶紧试试?

目录
相关文章
|
1月前
|
网络安全 开发工具 git
在GitLab CI中同步HTTPS仓库地址的yaml配置
最后,提交并推送 `.gitlab-ci.yml`文件到您的GitLab仓库。GitLab CI/CD将自动识别这个文件,并在每次推送到 `master`分支时执行定义的同步任务。
138 16
|
3月前
|
缓存 监控 Ubuntu
在Ubuntu 16.04上配置GitLab Runner以激活GitLab CI/CD流程
完成以上步骤后,每当代码被推送到远端仓库中相对应分支上时,GitLb CI / CD 流水线就会自动触发,并由之前注册好了 GitLb runner 的机器去完成定义好了 ` .gitlabcicd.yml ` 文件里面定义好各种任务(如编译测试部署等).
148 13
|
9月前
|
数据采集 存储 Docker
深入理解Docker:为你的爬虫项目提供隔离环境
本教程介绍如何使用Docker构建隔离环境,运行Python爬虫项目,采集小红书视频页面的简介和评论。主要内容包括: 1. **Docker隔离环境**:通过Docker容器化爬虫,确保环境独立、易于部署。 2. **代理IP技术**:利用亿牛云爬虫代理突破反爬限制。 3. **Cookie与User-Agent设置**:伪装请求头,模拟真实用户访问。 4. **多线程采集**:提高数据采集效率。 前置知识要求:Python基础、Docker基本操作及HTML解析(可选)。教程还涵盖常见错误解决方法和延伸练习,帮助你优化爬虫代码并避免陷阱。
256 7
深入理解Docker:为你的爬虫项目提供隔离环境
|
8月前
|
Docker Python 容器
Docker——阿里云服务器使用Docker部署python项目全程小记
本文记录了我在阿里云服务器上使用Docker部署python项目(flask为例)的全过程,在这里记录和分享一下,希望可以给大家提供一些参考。
922 1
|
9月前
|
监控 jenkins Shell
jenkins结合gitlab实现CI(持续集成)
通过本文的介绍,我们详细了解了如何结合Jenkins和GitLab实现持续集成。从环境准备、插件配置到Pipeline任务创建和CI流程监控,每一步都提供了详细的操作步骤和示例代码。希望本文能帮助开发者快速搭建起高效的CI系统,提高项目开发效率和代码质量。
795 9
|
10月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
11月前
|
关系型数据库 应用服务中间件 PHP
实战~如何组织一个多容器项目docker-compose
本文介绍了如何使用Docker搭建Nginx、PHP和MySQL的环境。首先启动Nginx容器并查看IP地址,接着启动Alpine容器并安装curl测试连通性。通过`--link`方式或`docker-compose`配置文件实现服务间的通信。最后展示了Nginx配置文件和PHP代码示例,验证了各服务的正常运行。
282 3
实战~如何组织一个多容器项目docker-compose
|
10月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
4月前
|
存储 安全 Linux
Linux服务器上安装配置GitLab的步骤。
按照以上步骤,一个基础的GitLab服务应该运行并可以使用。记得定期检查GitLab官方文档,因为GitLab的安装和配置步骤可能随着新版本而变化。
347 0
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner