1. GitLab Runner 命令的使用方式
GitLab Runner Docker映像(基于Ubuntu或Alpine Linux)被设计为标准gitlab-runner命令的包装器,就像GitLab Runner是直接安装在主机上一样。
运行在主机上的 runner 执行命令:
gitlab-runner <Runner command and options...>
运行在 Docker 上的 runner 执行命令:
docker run <chosen docker options...> gitlab/gitlab-runner <Runner command and options...>
//例子
$ docker run --rm -it gitlab/gitlab-runner --help
...
简而言之,gitlab-runner
部分命令被替换 docker run [docker options] gitlab/gitlab-runner
,而Runner的其余命令保持不变,唯一的区别是该gitlab-runner命令在Docker容器内部执行。
2. Docker 安装
//安装 Docker
$ curl -L --output /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ yum -y install docker-ce
$ mkdir /etc/docker
$ tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://g9ppwtqr.mirror.aliyuncs.com"]
}
EOF
$ systemctl start docker && systemctl enable docker
您需要将配置卷安装到gitlab-runner容器中以用于配置和其他资源:
$ docker run -d --name gitlab-runner --restart always \
-v /data/etc/gitlab-runner:/etc/gitlab-runner \
-v /var/run/docker.sock:/var/run/docker.sock \
harbor.xiodi.cn/tools/gitlab-runner:v12.10.0
[info] 使用 hub 镜像:
gitlab/gitlab-runner:v12.10.0
接下来,就是注册 Runner,注册之前,它不会从事任何工作。
3. 更新配置
如果更改配置 config.toml ,可能需要重启 Runner。确保重新启动整个容器,而不是使用gitlab-runner restart
:
$ docker restart gitlab-runner
4. 升级 Runner
$ docker pull gitlab/gitlab-runner:latest
$ docker stop gitlab-runner && docker rm gitlab-runner
$ docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /data/etc/gitlab-runner:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
5. 读取 GitLab Runner 日志
当GitLab Runner作为前台任务启动时(无论是本地安装的二进制文件还是在Docker容器内部),日志都会打印到标准输出。当GitLab Runner作为系统服务(例如,使用Systemd)启动时,大多数情况下,日志是通过Syslog或其他系统日志记录机制记录的。
随着GitLab Runner作为基于Docker的服务启动,由于该gitlab-runner …命令是容器的主要过程,因此可以使用该docker logs命令读取日志。
例如,如果使用上面的 docker 方式启动的 runner
$ docker logs gitlab-runner
6. 安装受信任的SSL服务器证书
如果您的GitLab CI服务器使用自签名SSL证书,则应确保GitLab Runner容器信任该GitLab CI服务器证书,以使它们能够相互通信。
将该gitlab/gitlab-runner映像配置为在上查找受信任的SSL证书/etc/gitlab-runner/certs/ca.crt,但是可以使用-e “CA_CERTIFICATES_PATH=/DIR/CERT”配置选项进行更改 。
将ca.crt文件复制到certs数据卷(或容器)上的目录中。该ca.crt文件应包含您希望GitLab Runner信任的所有服务器的根证书。GitLab Runner容器将ca.crt在启动时导入文件,因此,如果容器已经在运行,则可能需要重新启动它以使更改生效。