如何在使用 Gitlab CI runner 拉取 docker:dind 之前在 Dockerhub 上进行身份验证
How to authenticate on Dockerhub before pulling docker:dind with Gitlab CI runner
当我 运行 这个 Gitlab CI 工作是我自己 运行ner “my运行ner”
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 的步骤 运行ner:
开始 运行纳尔:
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
使用 username/password 用于 Dockerhub。
当我 运行 这个 Gitlab CI 工作是我自己 运行ner “my运行ner”
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 的步骤 运行ner:
开始 运行纳尔:
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
使用 username/password 用于 Dockerhub。