在使用Gitlab CI runner提取docker:dind之前,如何在Dockerhub上进行身份验证



当我在自己的runner"myrunner"上运行这个Gitlab CI作业时

test:
tags: 
- myrunner
image: docker:latest
stage: build
services:
- docker:dind
script:
- echo "It works!"
rules:
- when: always

我收到这个错误消息:

Preparing the "docker" executor
Using Docker executor with image docker:latest ...
Starting service docker:dind ...
Pulling docker image docker:dind ...
ERROR: Preparation failed: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit (docker.go:142:1s)
Will be retried in 3s ...

在提取图像docker:dind之前如何进行身份验证,以避免Dockerhub上的提取率限制?

创建自己的Gitlab运行程序的步骤:

启动转轮:

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 
gitlab/gitlab-runner:latest

寄存器:

docker run --rm -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register 
--non-interactive 
--executor "docker" 
--docker-image docker:stable 
--url "DOMAIN" 
--registration-token "REGISTRATION_TOKEN" 
--description "docker-runner" 
--tag-list "myrunner" 
--run-untagged="true" 
--locked="false" 
--access-level="not_protected" 
--docker-volumes "/certs/client" 
--docker-volumes /var/run/docker.sock:/var/run/docker.sock 
--docker-privileged

我将其添加到我的gitlab-ci.yml:中

variables:
DOCKER_AUTH_CONFIG: '{ "auths": { "https://index.docker.io/v1/": { "auth": "$DOCKER_AUTH" } }}'

$DOCKER_AUTH的值可以通过生成

echo -n "my_username:my_password" | base64

使用Dockerhub的用户名/密码。

最新更新