先去官网下载 gitlab-runner 的可执行文件,镜像应该也可以。
如果是注册的 runner 的 executor 是 docker, docker+machine 或 kubernetes 时,还需要下载名为 gitlab-runner-helper 的镜像,用来处理 git,artifacts,cache 等操作。
下载后的 gitlab-runner 二进制文件复制到 /usr/local/bin
目录,如果名字叫 gitlab-runner-xxx 的话需要改名为 gitlab-runner,再加上可执行权限 chmod +x gitlab-runner
。
首先就是要执行 gitlab-runner install
,这个命令需要传入一个用户参数,所以我们要先创建一个用户
sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash
然后安装并启动 gitlab-runner 服务
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
启动后就可以注册一个 runner 到你的 gitlab 上了
gitlab-runner register
register 命令是交互式的,里面要填的信息可以在 gitlab 上的对应项目的 setting -> CI/CD -> runners
里面找。
如果要创建一个组的 runner,只要填的 token 是组的 token 就可以了。组的 token 只有 owner 权限的人才能看到。
runner 创建完就可以在 /etc/gitlab-runner/config.toml
配置文件中看到。
至此,gitlab 上只要新增一个 .gitlab-ci.yml 文件就可以自动触发 ci 了。
如果使用的 docker 类型的 ci,而且 ci 中需要执行 docker 命令,就需要修改 config.toml 配置文件的 volumes 一行
...
volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]
...
其实也可以直接编辑 /etc/gitlab-runner/config.toml
文件,然后 gitlab-runner restart
就可以了。