Compilación de Imágenes Docker en AWS, GCP y Azure

Clase 13 de 18Curso de GitHub Actions

Resumen

Integrar correctamente imágenes de Docker en diversos servicios cloud puede parecer un desafío, pero con la ayuda de GitHub y sus workflows, es más sencillo de lo que imaginas. A continuación, te mostramos cómo hacerlo utilizando ejemplos con AWS, GCP y Azure.

¿Cómo iniciar el flujo de integración en GitHub?

Volver a GitHub es vital cuando hablamos de la segunda parte del flujo de integración continua. En este caso, el foco es el build o compilar que se ejecuta mediante dos tipos de eventos: un workflow dispatch o un issue comment. La elección sobre si se compilará en AWS, GCP o Azure se realiza mediante una opción que se presenta en un input de tipo choice.

¿Cuál es la función del docker- AWS job?

El job docker-aws es el primer trabajo y se ejecuta cuando queremos compilar la imagen y subirla al registry de AWS. Este proceso solo se ejecuta cuando se cumple un condicional que confirma que el evento que lanzó el workflow fue un pull request y que el comentario del pull request contenga 'build-aws'.

¿Cómo configurar QEMU y Docker BuildX?

Para compilar los archivos necesarios para la imagen de Docker, se configura QEMU, una opción de Docker especial, usando una action definida oficialmente por Docker denominada setupQemuAction. Adicionalmente, se utiliza otro action para configurar Docker BuildX, que controla cómo compilar las imágenes y es recomendado para ambientes de producción.

¿Cómo subir la imagen a AWS?

Para subir la imagen a AWS, es necesario configurar credenciales para un usuario IAM de AWS que incluyan un accessKeyId y un secretAccessKey. Luego, nos autenticamos en el Elastic Container Registry (ECR), el servicio que AWS ofrece para subir y mantener imágenes de Docker, utilizando el action AmazonECRlogin.

¿Cómo agregar la imagen a otros proveedores cloud?

Además de AWS, la imagen también se puede agregar a GCP y Azure. En GCP, el registry se llama 'Artifact Registry', y en Azure, es 'Azure Container Registry'. Para cada una de estas opciones, debes buscar acciones en el Marketplace y revisar en foros de la comunidad cómo otras personas subieron sus imágenes de Docker allí.

¿Cómo verificar las imágenes compiladas y cargadas exitosamente?

Para verificar que todas las imágenes han sido compiladas y cargadas de manera exitosa, puedes revisar la pestaña de 'Actions' en GitHub. Aquí, podrás ver los detalles de cada job en el workflow, incluyendo si ha pasado o fallo, cuánto tiempo tardó, y cuál fue el último paso que se ejecutó.

Con estas herramientas, puedes crear tu propio flujo de integración continua para tus proyectos personales. Este proceso te permitirá demostrar experiencia y conocimiento en el uso efectivo de GitHub Actions, Docker y varios servicios cloud. ¡Impresiona a todos con tu dominio de la integración continua!