搭建GitLab CI Runner

持续集成(Continuous integration)

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
参考文档:
CI、CD相关概念

GitLab CI Runner

什么是 Runner
参考文档:
GitLab Runners

Runner 类型

GitLab-Runner 可以分类两种类型:Shared Runner(共享型)和 Specific Runner(指定型)。

Shared Runner:这种 Runner 是所有工程都能够用的。只有系统管理员能够创建 Shared Runner。

Specific Runner:这种 Runner 只能为指定的工程服务。拥有该工程访问权限的人都能够为该工程创建 Shared Runner。

Runner 安装

Docker 下 Runner 安装:

  1. 拉取gitlab-runner镜像

docker pull gitlab/gitlab-runner:latest

  1. 添加gitlab-runner container

docker run -d --add-host git.ct-ec:106.37.233.68 --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

runner注册信息将保存在 /srv/gitlab-runner/config 下 config.toml 文件内,示例:

[[runners]]
name = “*****”
url = “http://gitlab-url/
token = “****”
executor = “docker”
[runners.docker]
tls_verify = false
image = “docker”
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0

如果需要在 executor 内执行 docker 命令需要修改配置文件,参考官方文档 三种配置方法,此处使用第三种方法:

volumes = ["/var/run/docker.sock:/var/run/docker.sock", “/cache”]

如果 runner 运行后报错 gitlab 域名无法解析
在这里插入图片描述
需要配置:

extra_hosts = [“gitlab-url:ip”]

注意:配置文件修改后需重启 runner 服务

  1. 注册runner

docker exec -it gitlab-runner gitlab-ci-multi-runner register
注册过程同下,步骤2 - 7

注册完成后到项目下查看启动的Runner
查看Runner
注册完成

Runner 注册
Runner 需要注册认证才能连接到 GitLab CI 服务上。

  1. 运行以下命令:
sudo gitlab-runner register
  1. 输入 GitLab 服务的 URL:
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
https://gitlab.com
  1. 输入GitLab CI 的 token:
Please enter the gitlab-ci token for this runner
xxx
  1. 输入对该 Runner 的描述(随意,可在 GitLab 修改):
Please enter the gitlab-ci description for this runner
[hostame] my-runner
  1. 输入与该 Runner 的 tag (随意,可在 GitLab 修改):
Please enter the gitlab-ci tags for this runner (comma separated):
my-tag,another-tag
  1. 输入 Runner executor:
Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
docker
  1. 如果是用 Docker 作为 executor ,需要指定.gitlab-ci.yml执行环境的image:
Please enter the Docker image (eg. ruby:2.1):
docker

说明:
第2、3步所需的 URL 和 token 如果是 Specific Runner 在 gitlab 服务项目下Settings -> CI/CD -> Runners settings 下,如果是 Shared Runner 则需要 gitlab 服务的 root 用户提供

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值