GitLab Runner: Publicar en el registro de contenedores de GitLab
Esta documentación forma parte de la guía Crear imágenes Docker. Consulte la guía completa aquí: Crea y publica imágenes Docker de forma eficiente desde tus pipelines de GitLab CI/CD utilizando runners de Stackhero y Docker-in-Docker.
👋 ¡Bienvenido a la documentación de Stackhero!
Stackhero le ofrece una solución GitLab Runner cloud fácil de usar, diseñada para gestionar sus trabajos de GitLab CI/CD de manera eficiente. Esto es lo que puede esperar:
- Minutos CI/CD ilimitados: no hay facturación por minuto, así que sus pipelines pueden ejecutarse siempre que lo necesite.
- Múltiples trabajos concurrentes: ejecute varios trabajos al mismo tiempo para acelerar todo su pipeline.
- Docker executor con soporte para Docker-in-Docker: simplifique la construcción y el push de sus imágenes de contenedor.
- Compatible con GitLab.com y cualquier instancia GitLab autogestionada.
- Una VM privada y dedicada impulsada por discos NVMe/SSD rápidos para builds consistentes y fiables.
- Disponible en las regiones de 🇪🇺 Europa y 🇺🇸 USA.
Ahorre tiempo: puede conectar su primer GitLab Runner y empezar a ejecutar pipelines en solo unos minutos.
GitLab proporciona variables predefinidas (CI_REGISTRY, CI_REGISTRY_USER, CI_REGISTRY_PASSWORD, CI_REGISTRY_IMAGE) para que tu pipeline pueda autenticarse y publicar imágenes en el registro de contenedores de tu proyecto de forma segura. No se requieren secretos adicionales.
Aquí tienes un ejemplo de job que construye y publica tu imagen:
build-and-push:
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:
- docker build -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA"
# Si estás en la rama principal, también puedes etiquetar y publicar "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
Para publicar tus imágenes en otro registro (como Docker Hub o un registro privado), puedes almacenar las credenciales como variables CI/CD y usarlas con docker login de la misma manera.