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!
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?
o inicia sesión.