使用gitlab构建基于docker的持续集成(一)
1|0使用gitlab构建基于docker的持续集成(一)
2|0开篇
关于CI,我的简单理解就是,项目的一键编译+测试+部署发布,然后可以重复利用这个过程,你只要一提交代码,项目就发布完成了。
而docker,可以给编译,测试,部署提供环境支撑,简单来说,就是比传统CI更方便,简化了CI过程中的环境问题。
本来是有想法是部署到公网,让大家试一下效果的,但是由于部署gitlab非常消耗,我的小服务器抗不住,只好把过程记录下来,给大家一个参考,也给自己做个备忘。
先贴几张效果图吧,有个整体印象。
本文大致是分三部分,基础准备,Centos主机上的配置,win主机的配置,最后发布测试。
3|0整体环境规划
- 本机(开发机):win10系统
- 开启Hyper-v
- 安装docker for windows
- vs2017
- 使用自签名证书的话要导入证书
- hosts设置域名:gitlab.luna.cn 映射gitlab服务器上
- gitlab服务器:Centos 7.3
- docker
- docker-compose
- 导入CA证书
- 设置hosts设置域名:gitlab.luna.cn 映射本机ip
- gitlab-runner:Centos7.3 (我把它部署到了gitlab服务器上了,规范的做法是应该分开部署)
- docker
- docker-compose
4|0准备工作
4|1CA证书
我提供一个我用的证书,证书的域名为:gitlab.luna.cn
创建两个文本,然后复制下面代码,改文件名即可。
gitlab.luna.cn.crt
gitlab.luna.cn.key
4|2虚拟机系统:安装Centos7.3
安装的时候尤其要注意:
- 开启网络,不开启,后续需要进到虚拟机开启,比较麻烦。
- 设置时区,不设置的话,时间会错误。
- 设置密码,root的密码,不说你也知道。
- 最小安装,就是默认,不要去选其他的乱七八糟的预装系统。
最后,要保证虚拟机能联网,主机能ping通虚拟机就可以了。
4|33.设置Centos的host
1.获取Centos主机的IP
2.找eth0的地址,我这里找到ip为:172.24.162.122
3.设置hosts
4.添加一条记录
5.你也可以把hostname也一起改了。
5.退出保存即可。
6.ping一下域名,看一下是否可以通。
4|4设置windows的host
1.打开C:\Windows\System32\drivers\etc\hosts文件
2.添加记录172.24.162.122 gitlab.luna.cn
3.最好重启。
4.尝试ping一下域名,是否能通,能通就行。
4|5Centos上docker安装
获取docker官方源
如果获取不到源,可以用阿里源,vi /etc/yum.repos.d/docker-ce.repo替换掉内容为下面的
安装docker
最后最好配置一下docker仓库源,不然下载镜像会很慢。我配置的阿里云的源。
https://cr.console.aliyun.com/?spm=5176.1971733.0.2.6c045aaaZ9Js2o#/accelerator
4|6Centos上docker-compose安装
这里有点坑,我推荐的是安装一个python3和python2共存环境,然后从github上直接下载docker-compose
因为我网上看到的是python3支持yml文件的中文注释。
以下是参考命令,不要复制全部运行,会有问题
安装python3,并且和Python2.7.5共存
下载docker-compose
如果可以使用docker-compose命令基本算安装成功了吧。
4|7window下安装docker for windows就可以了,包含docker-compose
4|8Centos7.3导入CA证书
4|9window10导入CA证书
直接打开.crt证书
导入之后打开证书应该是这样的
5|0补充
最后科普一个Centos开机启动docker的方法,网上找来的怎么做开机启动脚本
1.chmod +x /etc/rc.d/rc.local
2.vi /etc/rc.d/rc.local 添加/root/script/autostart.sh
3.vi /root/script/autostart.sh 添加/bin/systemctl start docker
__EOF__

本文链接:https://www.cnblogs.com/mmry/p/9000717.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix