Una vez que sabés cómo crear una imagen Docker eficiente, automatizar el proceso de despliegue es el siguiente paso natural. Este artículo te enseñará cómo automatizar la construcción y el despliegue de una imagen Docker a un registro utilizando el pipeline de integración y despliegue continuo (CI/CD) de GitLab.
Configuración del Pipeline de GitLab
GitLab CI/CD es una excelente herramienta para automatizar la construcción y despliegue de imágenes Docker. Utilizaremos un archivo .gitlab-ci.yml
para definir la configuración del pipeline. Este pipeline tendrá una única etapa llamada builder
para construir y publicar la imagen Docker.
Desglose del Pipeline
Paso 1: Variables
variables:
DOCKER_IMAGE_CI: whitecanvas/builder:$CI_COMMIT_TAG
Definimos una variable DOCKER_IMAGE_CI
que contiene el nombre de la imagen Docker junto con una etiqueta. $CI_COMMIT_TAG
es una variable predefinida en GitLab CI/CD que utiliza el nombre de la etiqueta del commit si está presente (este pipeline se ejecutará solo cuando el usuario cree un número de etiqueta).
Paso 2: Autenticación
before_script:
- echo "$DOCKERHUB_PASS" | docker login --username $DOCKERHUB_USER --password-stdin
Antes de ejecutar los scripts principales, iniciamos sesión en Docker Hub utilizando credenciales almacenadas en las variables de GitLab CI/CD DOCKERHUB_USER
y DOCKERHUB_PASS
.
Paso 3: Construcción y Publicación de la Imagen
amd64_image:
only:
- /(d+.)?(d+.)?(*|d+)/
stage: builder
image: docker:latest
services:
- docker:dind
script:
- cd amd64
- docker build -t $DOCKER_IMAGE_CI .
- docker push $DOCKER_IMAGE_CI
Este trabajo se ejecuta solo cuando el commit está etiquetado con un número de versión (por ejemplo, 1.0.0
). Utiliza la imagen docker:latest
y el servicio docker:dind
(Docker en Docker).
El script realiza los siguientes pasos:
- Cambiar de Directorio: Se mueve al directorio amd64 donde se encuentra el Dockerfile.
- Construir la Imagen: Ejecuta docker build con la etiqueta especificada en
DOCKER_IMAGE_CI
. - Publicar la Imagen: Subirá la imagen construida a Docker Hub.
Contenido Completo del Archivo .gitlab-ci.yml
Aquí está el contenido completo del archivo .gitlab-ci.yml
.
stages:
- builder
variables:
DOCKER_IMAGE_CI: whitecanvas/builder:$CI_COMMIT_TAG
before_script:
- echo "$DOCKERHUB_PASS" | docker login --username $DOCKERHUB_USER --password-stdin
amd64_image:
only:
- /(d+.)?(d+.)?(*|d+)/
stage: builder
image: docker:latest
services:
- docker:dind
script:
- cd amd64
- docker build -t $DOCKER_IMAGE_CI .
- docker push $DOCKER_IMAGE_CI
Automatizá el Despliegue de tus Imágenes Docker Usando GitLab
Aprovechando el pipeline CI/CD de GitLab, podemos automatizar la construcción y el despliegue de una imagen Docker.
Esta configuración garantiza que cada vez que se presiona una nueva etiqueta en el repositorio, nuestra imagen se construya y actualice automáticamente en Docker Hub, agilizando el proceso de despliegue y manteniendo la consistencia en las versiones.
Dicha automatización es crucial para despliegues eficientes y sin errores, especialmente en entornos de desarrollo ágiles.
Si encontraste útil este post, leé nuestro blog para más consejos, trucos y guías sobre WordPress.