GitLab Runner: Pousser vers le registre de conteneurs GitLab

Cette documentation fait partie du guide Construire des images Docker. Consultez le guide complet ici : Construisez et poussez des images Docker efficacement depuis vos pipelines GitLab CI/CD grâce aux runners Stackhero et à Docker-in-Docker.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero propose une solution GitLab Runner cloud simple qui facilite l'exécution de vos jobs GitLab CI/CD, de façon efficace et sans contraintes. Voici ce que vous pouvez attendre :

  • Minutes CI/CD illimitées : exécutez vos pipelines aussi souvent que nécessaire, sans facturation à la minute ni frais imprévus.
  • Plusieurs jobs simultanés : accélérez votre développement en lançant plusieurs jobs en parallèle.
  • L'executor Docker avec prise en charge de Docker-in-Docker : construisez et poussez facilement des images de conteneurs dans vos processus CI/CD.
  • Fonctionne parfaitement avec GitLab.com et les instances GitLab auto-hébergées.
  • Une infrastructure privée et dédiée avec un stockage NVMe/SSD rapide garantit des performances de build stables et prévisibles.
  • Disponible dans les régions 🇪🇺 Europe et 🇺🇸 USA pour répondre aux besoins de votre équipe.

Gagnez du temps : vous pouvez connecter votre premier GitLab Runner et lancer vos pipelines en seulement quelques minutes !

GitLab fournit des variables prédéfinies (CI_REGISTRY, CI_REGISTRY_USER, CI_REGISTRY_PASSWORD, CI_REGISTRY_IMAGE) pour que votre pipeline puisse s'authentifier et pousser des images vers le registre de conteneurs de votre projet en toute sécurité. Aucun secret supplémentaire n'est nécessaire.

Voici un exemple de job qui construit et pousse votre image :

build-and-push:
  stage: build
  image: docker:29
  services:
    - name: docker:29-dind
      alias: docker
  variables:
    DOCKER_HOST: "tcp://docker:2375"
    DOCKER_TLS_CERTDIR: ""
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
  script:
    - docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
    - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
    # Si vous êtes sur la branche par défaut, vous pouvez aussi taguer et pousser "latest" :
    - |
      if [ "$CI_COMMIT_BRANCH" = "$CI_DEFAULT_BRANCH" ]; then
        docker tag "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" "$CI_REGISTRY_IMAGE:latest"
        docker push "$CI_REGISTRY_IMAGE:latest"
      fi

Pour pousser vos images vers un autre registre (comme Docker Hub ou un registre privé), vous pouvez stocker les identifiants comme variables CI/CD et les utiliser avec docker login de la même manière.