GitLab Runner: Crear una imagen Docker con Docker-in-Docker
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.
Puedes añadir el siguiente ejemplo de .gitlab-ci.yml a tu repositorio. Esta configuración construye el Dockerfile que se encuentra en la raíz de tu proyecto:
build-image:
stage: build
image: docker:29
services:
- docker:29-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
before_script:
- docker info
script:
# Sustituye "my-image" por el nombre que desees:
- docker build -t my-image .
# Opcionalmente, ejecuta una prueba rápida sobre la imagen construida:
# - docker run --rm my-image /path/to/tests
En este ejemplo estamos usando la versión 29 de la imagen Docker. Puedes utilizar una versión más reciente si está disponible. Consulta las etiquetas más recientes en la página oficial de imágenes Docker.
En esta configuración, el servicio docker:29-dind inicia el daemon de Docker. Al establecer DOCKER_TLS_CERTDIR: "/certs" se habilita una conexión TLS segura entre tu job y el daemon de Docker.