Git

Git——Docker搭建GitLab&简单的Runner配置

Nick · 10月28日 · 2021年 · 本文4391字 · 阅读11分钟1,133

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

Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
2、登录gitlab容器:

docker exec -it gitlab bash

Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客

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'

Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
4、保存推出文件后对所改配置立即生效:

gitlab-ctl reconfigure

Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客

5、查看生效后配置

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
如果信息无误,则gitlab安装完成。

登录GitLab

  1. 访问:http://192.168.137.130(你对应的ip)
  2. 设置新密码
  3. 重新登录页面:
    用户名:(默认)root
    密码:刚才设置的密码
    输入用户名密码,登录即可
    Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客

本地测试提交:(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,邮箱填写你注册时使用的邮箱(如果另外注册了用户也可以填写)
Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
至此,就搭建好了可以媲美GitLab的代码托管工具了。

GitLab Runner的安装与使用

相关简介

  1. GitLab-CI
     GitLab-CI就是一套配合GitLab使用的持续集成系统(当然,还有其它的持续集成系统,同样可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。
  2. GitLab-Runner
     GitLab-Runner是配合GitLab-CI进行使用的。一般地,GitLab里面的每一个工程都会定义一个属于这个工程的软件集成脚本,用来自动化地完成一些软件集成工作。当这个工程的仓库代码发生变动时,比如有人push了代码,GitLab就会将这个变动通知GitLab-CI。这时GitLab-CI会找出与这个工程相关联的Runner,并通知这些Runner把代码更新到本地并执行预定义好的执行脚本。
     所以,GitLab-Runner就是一个用来执行软件集成脚本的东西。你可以想象一下:Runner就像一个个的工人,而GitLab-CI就是这些工人的一个管理中心,所有工人都要在GitLab-CI里面登记注册,并且表明自己是为哪个工程服务的。当相应的工程发生变化时,GitLab-CI就会通知相应的工人执行软件集成脚本。如下图所示:
    Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客

安装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——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
当你注册了git-runner容器后,就可以获取Runner 令牌
Git——Docker搭建GitLab&简单的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文件后,之后的每次代码提交,脚本都会按编写的执行一遍。
测试如下
Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
执行结果:

Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
可以查看执行的流水线图:
Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客
也可以点击去查看执行的log。
Git——Docker搭建GitLab&简单的Runner配置-左眼会陪右眼哭の博客

0 条回应
在线人数:1人 来访统计
隐藏