我一直试图在Windows上安装GitLab运行程序。通常,它可以完成我想要的操作,这意味着它可以拾取GitLab发送的作业并尝试运行它们。
我的问题是我使用了docker executor,并且docker似乎无法连接到存储映像的注册表,无法在容器中提取和运行它。 我的注册表在专用网络上。我无法使用GitLab的注册表。
这是我所做的: 首先,我在码头的组织下创建了一个技术用户(机器人用户)。创建后,该用户将获得一个秘密令牌。该用户有权使用GitLab-runner读取我尝试拉出的docker映像。
为我提供了以下JSON配置:
"auths": {
"quay.hostname": {
"auth": "base64string resulting from user:password encoding",
"email": ""
}
}
(出于安全目的更改了主机名和base64字符串)
因此,我尝试首先使用--env参数在“ gitlab-runner register”命令中传递该json身份验证字符串,如下所示:
--env 'DOCKER_AUTH_CONFIG={"auths": {"quay.hostname": {"auth":"base64string resulting from user:password encoding","email": ""}}}'
它没有任何好处,我发现在配置文件中会更好,因此,在Windows上,我将JSON配置添加到C:\ Users \ myUser.docker \ config.json并重新启动了docker守护程序。
结果: 拿起GitLab发送的作业时,我得到以下信息:
WARNING: Preparation failed: Error response from daemon: Get https://quay.hostname/v2/regulatory_components/gitlab-runner/manifests/latest: unauthorized: authentication required (docker.go:142:32s) job=4192333 project=43369 runner=rXef5mLf
Will be retried in 3s ... job=4192333 project=43369 runner=rXef5mLf
WARNING: Preparation failed: Error response from daemon: Get https://quay.hostname/v2/regulatory_components/gitlab-runner/manifests/latest: unauthorized: authentication required (docker.go:142:32s) job=4192333 project=43369 runner=rXef5mLf
Will be retried in 3s ... job=4192333 project=43369 runner=rXef5mLf
WARNING: Preparation failed: Error response from daemon: Get https://quay.hostname/v2/regulatory_components/gitlab-runner/manifests/latest: unauthorized: authentication required (docker.go:142:32s) job=4192333 project=43369 runner=rXef5mLf
Will be retried in 3s ... job=4192333 project=43369 runner=rXef5mLf
ERROR: Job failed (system failure): Error response from daemon: Get https://quay.hostname/v2/regulatory_components/gitlab-runner/manifests/latest: unauthorized: authentication required (docker.go:142:32s) duration=1m49.873514s job=4192333 project=43369 runner=rXef5mLf
WARNING: Failed to process runner builds=0 error=Error response from daemon: Get https://quay.hostname/v2/regulatory_components/gitlab-runner/manifests/latest: unauthorized: authentication required (docker.go:142:32s) executor=docker runner=rXef5mLf
能请你指教吗?
非常感谢您的关注和参与。