使用官方的 GitLab 存储库安装 GitLab Runner
前言
需要为项目实现基于 Gitlab 的 CI/CD。gitlab-runner 是具体执行 CI/CD 的核心。因此需要搭建一个 GitLab Runner
文中大部分参考于官方的文档《Install GitLab Runner using the official GitLab repositories》
环境介绍
- Linux 环境 Debian
- Docker 作为执行器
安装 Docker
这边 Runner 需要支持 Docker 系列的执行器,也就是构建需要在容器里执行,那么需要先安装 Docker 环境
1 2 3
| curl -sSL https://get.docker.com/ | sh /etc/init.d/docker status [ ok ] Docker is running.
|
安装 Runner
GitLab Runner 支持多平台、多方式安装,包括GNU/Linux, macOS, FreeBSD 和Windows平台的安装,以及支持基于docker的自动扩展式安装
下面使用官方的 GitLab 存储库在 Debian 平台安装GitLab Runner
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| # 添加GitLab的官方存储库 # For Debian/Ubuntu/Mint $ curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
# 安装特定版本的 GitLab Runner # for DEB based systems $ apt-cache madison gitlab-runner $ apt-get install gitlab-runner=11.11.4
# 确认安装成功 $ gitlab-runner --version Version: 11.11.4 Git revision: e828d3bc Git branch: GO version: go1.8.7 Built: 2019-07-07T00:29:25+0000 OS/Arch: linux/amd64
|
注册 Runner
注册 Runner 是将 Runner 与 GitLab 实例绑定的过程
注册 Specific Runnersr 到 GitLab 之前,需要在 Settings 中拿到 Gitlab 实例 URL 和注册 token
Settings->CI/CD->Runners->Specific Runners
接着执行下方命令会进入一个交互式的配置流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| # 运行以下命令注册Runner $ gitlab-runner register
# 输入GitLab实例URL Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com ) https://git-sa.nie.netease.com/
# 输入token来注册 Please enter the gitlab-ci token for this runner xxx
# 输入Runner的描述,稍后可以在GitLab的UI中进行更改 Please enter the gitlab-ci description for this runner alpha-runner
# 输入与Runner关联的标签,稍后可以在GitLab的UI中进行更改(在.gitlab-ci.yml中使用tags来指定相关标签的runner运行) Please enter the gitlab-ci tags for this runner (comma separated): alpha
# 输入Runner执行者(需要使用docker来部署服务,因此这里选择Docker作为执行程序) Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell: docker
# 如果选择Docker作为执行程序,则会要求定义默认映像,用于在.gitlab-ci.yml中未指定镜像使用默认镜像 Please enter the Docker image (eg. ruby:2.6): dockerhub.nie.netease.com/library/debian_ci
|
配置 Docker
注册一个 Docker 类型的 Runner 后,如果要在该 Runner 中使用 Docker 进行构建等任务,则需要增加以下配置,以支持 docker in docker
安装好runner后,即会生成一份runner的配置文件,不同系统平台配置文件路径为:
以root用户安装的,且为 *nix 类系统(如Debian)配置文件路径为/etc/gitlab-runner/config.toml
以非root用户安装的,且为 *nix 类系统(如Debian)配置文件路径为~/.gitlab-runner/config.toml
其他系统 ./config.toml
挂载宿主docker.sock到容器内,挂载镜像registry的认证文件到容器内(如果要拉取私有镜像,则需要在容器内部署认证配置,或者在宿主配置,然后挂入容器内),修改 Docker 为 host 网络
1 2 3 4
| # 修改对应runner的volumes配置 volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock", "/root/.docker/config.json:/root/.docker/config.json"] # 在volums下添加如下一行 network_mode = "host"
|