簡體   English   中英

Gitlab-ci如何登錄docker賬號

[英]How to login docker account in Gitlab-ci

我已經訂閱了docker帳戶的 Pro 計划,以提高我自己托管的 Gitlab CI 作業的速率限制 然后在服務器上使用此命令成功登錄:

$ sudo docker login -u user -p *******

這是我的.gitlab-ci.yml文件:

image: edbizarro/gitlab-ci-pipeline-php:7.3-alpine

unittest:
  stage: testing
  services:
    - mysql:latest
  script:
    - ./vendor/bin/phpunit --colors --stop-on-failure

但是當工作開始時,我仍然收到這個錯誤:

Running with gitlab-runner 13.6.0 (8fa89735)
  on fafa-group-runner n7oiBzAk
Preparing the "docker" executor
30:53
Using Docker executor with image edbizarro/gitlab-ci-pipeline-php:7.3-alpine ...
Starting service mysql:latest ...
Pulling docker image mysql:latest ...
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:4s)

我錯過了什么嗎?

您以 root 用戶身份在主機上執行了 docker 登錄。 然而,圖像是由 GitLab 跑步者拉取的,這將是另一個用戶,可能是容器化的。

配置運行器注冊表憑據的說明有多個選項,包括在項目的.gitlab-ci.yml或運行器的config.toml中設置DOCKER_AUTH_CONFIG 該變量包含~/.docker/config.json的內容,其中包含注冊表憑據。

另請檢查GitLab 13.9 (2021 年 2 月)

使用依賴代理時自動進行身份驗證

通過代理和緩存來自 Docker Hub 的容器圖像,依賴代理可幫助您提高管道的性能。

盡管該代理旨在大量用於 CI/CD,但要使用該功能,您必須將您的憑據添加到DOCKER_AUTH_CONFIG CI/CD 變量或在您的管道中手動運行docker login 這些解決方案工作正常,但是當您考慮需要更新多少.gitlab-ci.yml文件時,如果 GitLab Runner 可以自動為您進行身份驗證會更好。

由於 Runner 已經能夠使用集成的 GitLab Container Registry 自動進行身份驗證,因此我們能夠利用該功能來幫助您自動使用 Dependency Proxy 進行身份驗證。

現在可以更輕松地使用 Dependency Proxy 從 Docker Hub 代理和緩存您的容器鏡像,並開始更快、更可靠的構建。

請參閱文檔問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM