GitLab Runner: Subir a GitLab Container Registry

Esta documentación forma parte de la guía Creación de imágenes Docker. Consulte la guía completa aquí: Construya y suba imágenes Docker desde sus pipelines de GitLab CI/CD utilizando su runner 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 varias variables predefinidas (CI_REGISTRY, CI_REGISTRY_USER, CI_REGISTRY_PASSWORD, CI_REGISTRY_IMAGE) para que su pipeline pueda iniciar sesión y subir imágenes al registro de contenedores del proyecto sin necesidad de secretos adicionales.

Aquí tiene un ejemplo de job que construye y sube su imagen:

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"
    # Si está en la rama principal, también puede etiquetar y subir "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

Si desea subir sus imágenes a otro registro (como Docker Hub o un registro privado), puede almacenar esas credenciales como variables CI/CD y usarlas con docker login de forma similar.