GitLab Runner: Accélérer les builds répétés

Cette documentation fait partie du guide Construire des images Docker. Consultez le guide complet ici : Construisez et poussez efficacement des images Docker depuis vos pipelines GitLab CI/CD en utilisant les runners Stackhero et Docker-in-Docker.

👋 Bienvenue sur la documentation de Stackhero !

Stackhero vous propose une solution GitLab Runner cloud simple à utiliser, conçue pour exécuter efficacement vos jobs GitLab CI/CD. Voici ce dont vous pouvez bénéficier :

  • Minutes CI/CD illimitées : aucune facturation à la minute, vos pipelines s'exécutent quand vous en avez besoin.
  • Jobs simultanés : lancez plusieurs jobs en parallèle pour accélérer l'ensemble de votre pipeline.
  • Docker executor avec prise en charge de Docker-in-Docker : facilitez la création et le push de vos images de conteneurs.
  • Compatible avec GitLab.com ainsi que toute instance GitLab auto-hébergée.
  • Une VM privée et dédiée propulsée par des disques NVMe/SSD rapides pour des builds fiables et constants.
  • Disponible dans les régions 🇪🇺 Europe et 🇺🇸 USA.

Gagnez du temps : connectez votre premier GitLab Runner et lancez vos pipelines en quelques minutes seulement !

Le disque de votre runner est conservé entre les pipelines, ce qui permet de réutiliser les couches d'image comme cache de build. Cela accélère considérablement les builds successifs. Voici un exemple de configuration :

build-cached:
  stage: build
  image: docker:29
  services:
    - docker:29-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
  script:
    # Récupère la dernière image pour initialiser le cache (si elle existe) :
    - docker pull "$CI_REGISTRY_IMAGE:latest" || true
    - docker build --cache-from "$CI_REGISTRY_IMAGE:latest" -t "$CI_REGISTRY_IMAGE:latest" .
    - docker push "$CI_REGISTRY_IMAGE:latest"

Cette méthode permet à vos builds de profiter du cache de couches Docker, seules les nouvelles couches ou celles modifiées sont reconstruites.