GitLab Runner: Pubblicare nel container registry di GitLab
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!
GitLab mette a disposizione diverse variabili predefinite (CI_REGISTRY, CI_REGISTRY_USER, CI_REGISTRY_PASSWORD, CI_REGISTRY_IMAGE) così che la pipeline possa autenticarsi e pubblicare immagini nel container registry del progetto senza bisogno di segreti aggiuntivi.
Ecco un esempio di job che costruisce e pubblica la tua immagine:
build-and-push:
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:
- docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
# Se sei sul branch di default, puoi anche taggare e pubblicare "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
Se desideri pubblicare le immagini su un altro registry (come Docker Hub o un registry privato), puoi salvare le relative credenziali come variabili CI/CD e utilizzarle con docker login nello stesso modo.