GitLab Runner: Accelerare le build ripetute

Questa documentazione fa parte della guida Creazione di immagini Docker. Consulta la guida completa qui: Crea e pubblica immagini Docker dai tuoi pipeline GitLab CI/CD utilizzando il tuo runner Stackhero e Docker-in-Docker.

👋 Benvenuto nella documentazione di Stackhero!

Stackhero ti offre una soluzione GitLab Runner cloud facile da usare, progettata per gestire in modo efficiente i tuoi job GitLab CI/CD. Ecco cosa puoi aspettarti:

  • Minuti CI/CD illimitati: nessuna fatturazione al minuto, le tue pipeline possono essere eseguite ogni volta che ne hai bisogno.
  • Job concorrenti multipli: esegui più job contemporaneamente per velocizzare l'intera pipeline.
  • Docker executor con supporto Docker-in-Docker: semplifica la creazione e il push delle tue immagini container.
  • Compatibile sia con GitLab.com che con qualsiasi istanza GitLab self-managed.
  • Una VM privata e dedicata alimentata da dischi NVMe/SSD veloci per build affidabili e costanti.
  • Disponibile sia nelle regioni 🇪🇺 Europa che 🇺🇸 USA.

Risparmia tempo: puoi collegare il tuo primo GitLab Runner e iniziare a eseguire pipeline in pochi minuti!

Poiché il disco del runner è persistente tra i pipeline, puoi velocizzare le build riutilizzando i layer delle immagini precedenti come cache. Ecco come configurarlo:

build-cached:
  stage: build
  image: docker:27
  services:
    - docker:27-dind
  variables:
    DOCKER_TLS_CERTDIR: "/certs"
  before_script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
  script:
    # Prova a scaricare l'immagine "latest" per alimentare la cache (va bene se non esiste ancora):
    - 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"

Questo approccio permette ai tuoi pipeline di completarsi più rapidamente nel tempo, sfruttando al massimo la cache dei layer Docker.