注册
docker run -itd --rm -v /data/devops/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:v12.9.0 register
–non-interactive
–executor “docker”
–url “http://gitlab.idevops.site/”
–registration-token “4qCqD8pEoLzvgzzVn5oy”
–description “devops-runner”
–tag-list “build,deploy”
–run-untagged=“true”
–locked=“false”
–docker-image alpine:latest
–access-level=“not_protected”
运行
docker run -itd
–name gitlab-runner
–restart=always
-v /data/devops/gitlab-runner/config:/etc/gitlab-runner
-v /var/run/docker.sock:/var/run/docker.sock
gitlab/gitlab-runner:v12.9.0
您可以采用两种方法来访问私有注册表。两者都需要设置环境变量DOCKER_AUTH_CONFIG来存储身份验证信息 。
作业级:要配置一个作业以访问专用注册表,请添加 DOCKER_AUTH_CONFIG为作业变量。
平台级(每个runner):要配置Runner以便其所有作业都可以访问私有注册表,在Runner的配置中添加DOCKER_AUTH_CONFIG到环境变量中。
获取凭证信息
使用docker login生成
docker login registry.example.com:5000 --username my_username --password my_password
然后复制~/.docker/config.json的内容。
[root@zeyang-nuc-service config]# cat ~/.docker/config.json
{
“auths”: {
“192.168.1.200:8088”: {
“auth”: “YWRtaW46SGFyYm9yMTIzNDU=”
},
},
“HttpHeaders”: {
“User-Agent”: “Docker-Client/19.03.5 (linux)”
}
使用base64生成
echo -n “my_username:my_password” | base64
示例
bXlfdXNlcm5hbWU6bXlfcGFzc3dvcmQ=
格式
{
“auths”: {
“registry.example.com:5000”: {
“auth”: “(Base64 content from above)”
}
}
}
配置凭证信息
格式化数据:{“auths”: {“192.168.1.200:8088”: {“auth”: “YWRtaW46SGFyYm9yMTIzNDU=”}}
项目级配置
将认证信息以变量的方式存储在项目或者ci文件中
stages:
- test
variables:
DOCKER_AUTH_CONFIG: ‘{“auths”: {“192.168.1.200:8088”: {“auth”: “YWRtaW46SGFyYm9yMTIzNDU=”}}}’
test:
stage: test
tags:
- build
image: 192.168.1.200:8088/spinnaker01/spinnaker01-nginx-demo:RELEASE-1.1.1
script:
- sleep 20
系统级配置
将认证信息以变量的方式存储在runner配置文件中
[[runners]]
environment = [‘DOCKER_AUTH_CONFIG={“auths”: {“192.168.1.200:8088”: {“auth”: “YWRtaW46SGFyYm9yMTIzNDU=”}}}’]
测试验证