当我在自己的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的用户名/密码。