· 2 min read

Docker Hub limitations : sécurisez vos pipelines GitLab CI/CD en 3 étapes

Docker Hub limite les téléchargements d'images de base comme php, alpine, node, etc. Sécurisez vos pipelines GitLab CI/CD en 3 étapes.

Docker Hub limite les téléchargements d'images de base comme php, alpine, node, etc. Sécurisez vos pipelines GitLab CI/CD en 3 étapes.

Docker limite les téléchargements : sécurisez vos pipelines GitLab CI/CD en 3 étapes

À partir du 1er avril 2025, Docker mettra en place une politique beaucoup plus stricte concernant l’utilisation de son registre public Docker Hub.

🔥 Seulement 10 téléchargements d’images par heure pour les utilisateurs non authentifiés.

Ces restrictions vont impacter directement vos pipelines CI/CD, y compris ceux tournant sur GitLab, en provoquant des erreurs inattendues lors du téléchargement d’images Docker de base comme php, alpine, node, etc.

📉 Ce que Docker change

Voici les nouvelles limites officielles de Docker Hub :

Type d’utilisateurLimite de pullsFenêtre
🕵️‍♂️ Non authentifié10 pullspar heure
👤 Authentifié (gratuit)100 pullspar heure
💼 Abonnement Pro/TeamIllimité (fair use)selon plan

Chaque pull (téléchargement d’image) depuis Docker Hub dans un pipeline GitLab CI compte dans ce quota.

❗️ Un pipeline à risque

Prenons ce .gitlab-ci.yml tout simple :

image: php:8.4

stages:
  - test

test:
  script:
    - php -v

Chaque exécution télécharge l’image php:8.4 depuis Docker Hub.
Avec plusieurs exécutions ou jobs, le quota est vite atteint ➜ toomanyrequests, échec du job.

✅ La solution simple : héberger l’image dans GitLab

La méthode la plus rapide pour se prémunir de ces limitations est de re-publier l’image Docker utilisée dans le GitLab Container Registry de votre projet.

Voici les 3 étapes à suivre :

1. Télécharger l’image une fois

docker pull php:8.4

2. Re-tagger pour votre registry GitLab

docker tag php:8.4 registry.gitlab.com/votre-groupe/votre-projet/php:8.4

3. Pousser l’image dans GitLab

docker push registry.gitlab.com/votre-groupe/votre-projet/php:8.4

🔁 Mise à jour du pipeline GitLab

Utilisez maintenant votre image privée dans .gitlab-ci.yml :

image: registry.gitlab.com/votre-groupe/votre-projet/php:8.4

stages:
  - test

test:
  script:
    - php -v

✔️ Vous êtes maintenant à l’abri des limitations de Docker Hub.

🛡️ Les autres solutions proposées par GitLab

Dans son article officiel (source GitLab), GitLab recommande également :

  • 🧾 Configurer une authentification Docker Hub dans vos runners (avec token)
  • 📦 Utiliser des registres privés (AWS ECR, GitLab Registry, etc.)
  • 🧰 Optimiser les pulls et la mise en cache des images
  • 💡 Utiliser des runners auto-hébergés avec caching local

Mais publier les images dans votre registry GitLab reste la solution la plus simple, stable et rapide à mettre en place, surtout en environnement GitLab SaaS.

🧠 En résumé

StratégieFacile ?Protège des quotas ?
Docker Hub (anonyme)
Docker Hub (authentifié)⚠️🟡 (200 pulls max)
Registry GitLab (recommandé)✅✅✅✅✅

📩 Vous utilisez GitLab CI/CD avec PHP ?

Je prépare une ressource complète avec des templates prêts à l’emploi, des bonnes pratiques et des outils pour fiabiliser vos pipelines.

👉 Rejoignez la liste d’attente ici : https://formation.yoandev.co/gitlab-ci-pour-php-solution-cle-en-main-pour-les-equipes-en-entreprise

Back to Blog

Comments (0)

Loading comments...

Leave a Comment