gitlab-runner安装
gitlab-runner容器
- 使用gitlab.com安装部署指导手册下载相应gitlab-runner镜像并使用docker运行即可。
- gitlab-runner以容器的方式提供服务时,可在启动容器时通过-v将本地gitlab-runner/config.toml文件挂载到容器中,以提供认证等配置信息。对本地文件config.toml的修改将不能即时生效,需要重启容器。
启动容器
- 以本地文件挂载方式启动容器
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 \
harbor.rjb.dgbc.net.cn/cs/gitlab-runner:latest
- 以docker volumes方式启动容器
# 创建docker volume
docker volume create gitlab-runner-config
# 使用volume启动runner
docker run -d --name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v gitlab-runner-config:/etc/gitlab-runner \
harbor.rjb.dgbc.net.cn/cs/gitlab-runner:latest
注册到gitlab
# 本地文件挂载的注册指令
docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner harbor.rjb.dgbc.net.cn/cs/gitlab-runner register
# docker volume挂载的注册指令
docker run --rm -it -v gitlab-runner-config:/etc/gitlab-runner gitlab/gitlab-runner:latest register
gitlab-runner 访问镜像仓库
gitlab-runner的docker runner在运行时需要访问镜像仓库并通过认证才能拉取镜像,故需要为runner指定镜像仓库的认证信息,认证信息将保存在gitlab-runner的DOCKER_AUTH_CONFIG环境变量中。
获取docker登录镜像仓库的认证
通过获取登录该仓库的认证配置信息,位于文件~/.docker/config.json
登录指令:
docker login repository-url --username user --password passwd
认证信息示例:
{
"auths": {
"gitlab.com": {
"auth": "XXXXXXX"
},
"registry.gitlab.com": {
"auth": "XXXXXXX"
}
}
}
项目级镜像仓库认证配置
在项目的gitlab.yml文件的variables中指定DOCKER_AUTH_CONFIG的值:
stages:
- test
variables:
DOCKER_AUTH_CONFIG: '{"auths":{"repository-url":"repository-key"}}'
系统级镜像仓库认证配置
在gitlab-runner的配置文件/etc/gitlab-ruuner/config.toml中增加DOCKER_AUTG_CONFIG环境变量的值,并重启runner使之生效
[[runners]]
environment = ['DOCKER_AUTH_CONFIG={ "auths": { "registry.gitlab.com": {"auth": "xxxxx"}}}']