Despliegue automático con GitHub Actions y Azure

Clase 24 de 34Curso de Docker Avanzado

Resumen

Logra un CI/CD completo con GitHub Actions y Azure Web App: tras construir y validar tu imagen de Docker, activa el despliegue continuo para que cada commit publique automáticamente en una Web App de Azure. Aquí verás cómo crear la Web App en Linux, configurar el contenedor desde Docker Hub público, habilitar Continuous Deployment, proteger el Publish Profile como secret y añadir el paso de deploy al workflow YAML.

¿Cómo cerrar el ciclo ci/cd con GitHub Actions y Azure Web App?

La meta es convertir la integración continua en un despliegue continuo: cada push dispara build, push y deploy del contenedor. Sin tareas manuales. Sin fricción.

  • CI: validación y publicación de la imagen en Docker Hub con GitHub Actions.
  • CD: despliegue automático de la imagen en Azure Web App al hacer commit.
  • Imagen y tag: uso de Docker Hub público con tag como latest.
  • Beneficio clave: ahorras los pasos rutinarios de docker build, docker push y publicación en Azure.

¿Qué beneficios aporta el despliegue continuo?

  • Menos intervención manual y menos errores.
  • Cambios visibles tras cada commit.
  • Logs claros del pipeline para auditar resultados.

¿Cómo crear y configurar la Azure Web App para contenedores?

Primero, se crea una Web App en Linux para alojar el contenedor. Se ajusta el plan, región y la fuente de la imagen desde Docker Hub público. Luego, se habilita el despliegue continuo en Deployment Center y se obtiene el Publish Profile.

  • Crear Web App: seleccionar Web App, confirmar el grupo de recursos y un nombre único.
  • Sistema: elegir Linux y región como East US 2.
  • Plan: crear plan Linux, elegir nivel básico para pruebas.
  • Contenedor: fuente Docker Hub, acceso público, definir imagen y tag latest.
  • Red: habilitar acceso público. Deshabilitar inyección de red si aplica.
  • Monitoreo: no agregar por ahora.
  • Crear y esperar a estado Ejecutándose. Abrir la URL pública para validar el contenedor desplegado.

¿Qué ajustes habilitar antes del deployment automático?

  • En Configuración: activar el acceso básico en ambas opciones y guardar.
  • En Deployment Center: fuente desde container registry y activar Continuous Deployment.
  • Descargar el perfil de publicación (Publish Profile).

¿Cómo automatizar el deploy desde GitHub Actions con secretos?

Con la Web App lista, se integra el deploy en el workflow. Se agrega el Publish Profile como secret y se utiliza la acción de webapps deploy para autenticarse y publicar la imagen.

  • En GitHub: ir a Settings, Secrets > Actions, crear un secret llamado Azure Web App Publish Profile.
  • Abrir el archivo del perfil de publicación en el editor, copiar el XML y pegarlo en el secret.
  • Editar el workflow docker.yml: añadir un paso de autenticación y despliegue con la acción de webapps deploy.
  • Parámetros: nombre exacto de la aplicación de Azure y el secret del Publish Profile. Imagen con su nombre y tag publicados en Docker Hub.

¿Qué observar en la ejecución del pipeline?

  • Ver Docker CI en Actions: construir imagen, publicar imagen y desplegar en el servidor.
  • Logs: se reporta la actualización exitosa del despliegue y se muestra la URL pública.
  • Propagación: la nueva versión puede tardar un par de minutos en verse. Refrescar la URL.
  • Confirmación: en Docker Hub se ve la actualización reciente de la imagen.

¿Qué buenas prácticas y comandos aparecen?

  • Seguridad: mantener el Publish Profile muy restringido.
  • Git: usar git status, git add, git commit -m, git pull con rebase si es la primera vez, y git push.
  • Flujo final: un commit activa build, push y deploy automático en la Web App de Azure.

¿Tienes dudas o quieres compartir cómo organizas tus secrets y workflows en GitHub Actions? Comenta y conversemos sobre mejoras y variaciones útiles para tu equipo.