Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to login docker account in Gitlab-ci

I have subscribed for a Pro plan of docker account to increase rate limit in my self hosted Gitlab CI jobs. Then successfully logged-in using this command on the server:

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

This is my .gitlab-ci.yml file:

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

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

But when jobs get started, I'm still getting this error:

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)

Am I missing something?

like image 274
Omid Avatar asked Jan 27 '26 21:01

Omid


2 Answers

You performed the docker login as the root user on the host. However the images are being pulled by the GitLab runner, which will be another user, possibly containerized.

The instructions for configuring runner registry credentials has several options, including setting DOCKER_AUTH_CONFIG in either the project's .gitlab-ci.yml or runner's config.toml. That variable contains the content of the ~/.docker/config.json with the registry credentials inside.

like image 133
BMitch Avatar answered Jan 30 '26 11:01

BMitch


Check also GitLab 13.9 (February 2021)

Automatically authenticate when using the Dependency Proxy

By proxying and caching container images from Docker Hub, the Dependency Proxy helps you to improve the performance of your pipelines.

Even though the proxy is intended to be heavily used with CI/CD, to use the feature, you had to add your credentials to the DOCKER_AUTH_CONFIG CI/CD variable or manually run docker login in your pipeline. These solutions worked fine, but when you consider how many .gitlab-ci.yml files that you need to update, it would be better if the GitLab Runner could automatically authenticate for you.

Since the Runner is already able to automatically authenticate with the integrated GitLab Container Registry, we were able to leverage that functionality to help you automatically authenticate with the Dependency Proxy.

Now it’s easier to use the Dependency Proxy to proxy and cache your container images from Docker Hub and start having faster, more reliable builds.

See Documentation and Issue.

like image 33
VonC Avatar answered Jan 30 '26 09:01

VonC



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!