Git——Docker搭建GitLab&简单的Runner配置
GitLab简介
GitLab是一个开源的用于仓库管理的项目,和GitHub一样是使用Git作为代码管理工具。
GitLab和GitHub的区别: * GitHub作为开源代码库,拥有超过 900 万的开发者用户,目前仍然是最火的开源项目托管平台,GitHub 同时提供公共仓库和私有仓库,但如果使用私有仓库,是需要付费的。GitLab 解决了这个问题,你可以在上面创建私人的免费仓库。 * 让开发团队对他们的代码仓库拥有更多的控制,相比较 GitHub , 它有不少特色: 1. 允许免费设置仓库权限; 2. 允许免费设置仓库权限; 3. 允许用户设置 project 的获取权限,进一步提升安全性; 4. 可以设置获取到团队整体的改进进度; 5. 通过 innersourcing 让不在权限范围内的人访问不到该资源; 所以,从代码的私有性上来看,GitLab 是一个更好的选择。但是对于开源项目而言,GitHub 依然是代码托管的首选。
GitLab的部署
本文使用的是在centos7下使用docker进行搭建gitlab; 如果想使用linux直接安装,可以查看简单的教程:https://www.cnblogs.com/zhujingzhi/p/9703457.html
docker安装gitlab
1、安装命令(中文版镜像):
docker run -d -p 8443:443 -p 80:80 -p 8022:22 --restart always --name gitlab -v /usr/local/gitlab/etc:/etc/gitlab -v /usr/local/gitlab/log:/var/log/gitlab -v /usr/local/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
2、登录gitlab容器:
docker exec -it gitlab bash
3、登录后进行gitlab配置:
vi /etc/gitlab/gitlab.rb
在任意地方加入下面配置代码:
# 是否启用
gitlab_rails['smtp_enable'] = true
# SMTP服务的地址
gitlab_rails['smtp_address'] = "smtp.qq.com"
# 端口
gitlab_rails['smtp_port'] = 465
# 你的QQ邮箱(发送账号)
gitlab_rails['smtp_user_name'] = "********@qq.com"
# 授权码
gitlab_rails['smtp_password'] = "atu**********vfeij"
# 域名
gitlab_rails['smtp_domain'] = "smtp.qq.com"
# 登录验证
gitlab_rails['smtp_authentication'] = "login"
# 使用了465端口,就需要配置下面三项
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['smtp_openssl_verify_mode'] = 'none'
# 你的QQ邮箱(发送账号)
gitlab_rails['gitlab_email_from'] = '**********@qq.com'
4、保存推出文件后对所改配置立即生效:
gitlab-ctl reconfigure
5、查看生效后配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
如果信息无误,则gitlab安装完成。
登录GitLab
- 访问:http://192.168.137.130(你对应的ip)
- 设置新密码
- 重新登录页面: 用户名:(默认)root 密码:刚才设置的密码 输入用户名密码,登录即可
本地测试提交:(ssh://git@http://192.168.137.130) 1、全局配置授权信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"
2.、仓库初始化
cd existing_folder
git init
git remote add origin ssh://git@192.168.147.132:8022/Nick/demo.git
git add .
git commit -m "Initial commit"
git push -u origin master
注意:你的名字填写root,邮箱填写你注册时使用的邮箱(如果另外注册了用户也可以填写)
至此,就搭建好了可以媲美GitLab的代码托管工具了。
GitLab Runner的安装与使用
相关简介
- GitLab-CI GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。
- GitLab-Runner GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。 所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本。如下图所示:
安装GitLab Runner
使用docker本地卷来安装Runner,数据会被保存在本地。 1、安装命令:
docker run -d --name gitlab-runner --restart always \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
gitlab/gitlab-runner:latest
2、docker进入gitlab-runner docker exec -it gitlab-runner bash 3、进入gitlab-runner后注册一个runner
gitlab-ci-multi-runner register
输入gitlab-ci的url
http://192.168.1.39/ci
输入gitlab-ci给runner的token
dZ259BnLp6j-JS8sBk3G
输入runner的名字(随意取)
usercenter-runner
输入runner获取的仓库分支
develope
输入执行人(模式)
shell
也可以不登录git-runner容器,直接在命令行注册
docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register \
--non-interactive \
--executor "docker" \
--docker-image alpine:latest \
--url "http://192.168.137.130/" \
--registration-token "wgqg6_2Si-7RfgKbyYnL" \
--description "20211028-register-runner" \
--tag-list "global-runner,gitlab-test" \
--run-untagged="true" \
--locked="false" \
--access-level="not_protected"
url是gitlab的地址; registration-token是注册的Token; description是注册容器的描述; tag-list是该容器的标签; run-untagged是配置是否需要指定标签; locked是Runner是否能被指定到其它项目
其中Token是需要登录GitLab后获取的:
当你注册了git-runner容器后,就可以获取Runner 令牌
通过CI简单的配置运行Runner
1、根目录创建一个 .gitlab-ci.yml 文件 通过配置.gitlab-ci.yml文件来告诉CI要对你的项目做什么。 仓库一旦收到任何推送,GitLab将立即查找.gitlab-ci.yml文件,并根据文件的内容在Runner上启动作业。 2、编写 .gitlab-ci.yml 文件脚本
job1:
stage: .pre
tags:
- gitlab-test
script:
- echo 'my .pre job'
job2:
stage: build
tags:
- gitlab-test
script:
- echo 'my .pre job'
job3:
stage: test
tags:
- gitlab-test
script:
- echo 'my .test job'
job4:
stage: test
tags:
- gitlab-test
script:
- echo 'my test stage job4'
在这简单的.gitlab-ci.yml配置中: job是作业名称,可以自定义, stage是任务执行阶段, tags是runner指定的标签, script是该任务中执行的脚本,可以是shell脚本,也可以是执行centos上的某个脚本文件。
3、也可以自定义测试阶段(stage1、stage2、stage3)
stages:
- build
- test
- install
job1:
stage: build
tags:
- gitlab-test
script:
- echo 'my build job'
job2:
stage: test
tags:
- gitlab-test
script:
- echo 'my .test1 job'
job3:
stage: test
tags:
- gitlab-test
script:
- echo 'my .test2 job'
job4:
stage: install
tags:
- gitlab-test
script:
- echo 'my install job'
4、编写好.gitlab-ci.yml文件后,之后的每次代码提交,脚本都会按编写的执行一遍。 测试如下
执行结果:
可以查看执行的流水线图:
也可以点击去查看执行的log。
相关文章
- Unity & EasyDL 图像分割 - 识别图像中主体及其位置
- 快来为你的Docsify&Hugo&Hexo&MKDocs站点加上评论功能吧
- 零零信安-D&D数据泄露报警日报【第32期】
- docker 离线安装_Docker安装
- Docker安装docker-compose插件
- ST&Sensory&DSPC Joint Webiner
- 逻辑电路&代数运算(上)
- 【N32G457】基于N32G457和RT-Thread全新打造的私有化定制家用式智能告警系统(2022年国民技术MCU&RT-Thread设计大赛第一名作品)
- ECCV2022 &CVPR2022论文速递2022.7.14!
- 【Docker学习系列】Docker学习3-docker的run命令干了什么?docker为什么比虚拟机快?
- Docker高级篇:docker网络的四种类型
- 「 【Docker】设置docker加速器(如何使docker下载速度变快) 」
- 「 【Docker】linux安装docker compose(小白安装) 」
- 【指针进阶三】实现C语言快排函数qsort&回调函数
- 【Docker 系列】docker 学习六,探究一下数据卷容器
- 盘点:国内外SD-WAN&SASE提供商(2023版)
- 约数个数定理&约数和定理
- Linux下Docker安装指南(linux下docker安装)
- docker-Docker Registry私有仓库
- 使用 Docker 轻松安装 MySQL 数据库(docker安装mysql)
- docker用Docker构建Redis集群的步骤(redis集群使用)
- 快速安装Linux上的Docker(linux安装docker)
- 如何增加Oracle数据库的AMP值(amp值oracle)
- 《Istio官方文档》Nomad & Consul-Docker快速入门