Volver a las tareas

DAPW · Tarea

COMPOSE 4

Instrucciones

Levanta la aplicación del viaje de estudios con Docker Compose. En esta etapa debes crear el archivo docker-compose.yaml que conecte Flask y Gunicorn con Nginx y permita acceder a la aplicación desde http://localhost:8080/.

Utiliza 4-Viaje-estudios-votacion.zip, disponible en los materiales. Esta versión ya incluye el código de la aplicación, el Dockerfile y nginx/default.conf. La tarea consiste en integrar esas piezas mediante Compose.

1. Revisar los archivos proporcionados

  • En app/ encontrarás Flask, sus dependencias, las plantillas y el Dockerfile que arranca Gunicorn en el puerto 8000.
  • La configuración de Nginx ya reenvía las peticiones a http://fiesta_app:8000. El nombre del servicio de la aplicación debe coincidir con ese destino.
  • Crea docker-compose.yaml en la raíz del proyecto, junto a las carpetas app/ y nginx/.

2. Definir el servicio fiesta_app

  • Configura la construcción de la imagen a partir del Dockerfile incluido en app/.
  • Mantén el arranque con Gunicorn en el puerto interno 8000.
  • El puerto de la aplicación debe quedar accesible para Nginx dentro de la red de Compose, sin publicarlo en el equipo anfitrión.

3. Definir el servicio fiesta_nginx

  • Utiliza la imagen nginx:1.27-alpine.
  • Configura la dependencia para que Compose arranque primero fiesta_app y después Nginx.
  • Monta ./nginx/default.conf en /etc/nginx/conf.d/default.conf en modo de solo lectura.
  • Publica el puerto 8080 del equipo hacia el puerto 80 del contenedor.

Los dos servicios deben comunicarse mediante la red predeterminada que crea Docker Compose. En esta práctica Compose se encarga de crear la red y arrancar los contenedores.

4. Arrancar y comprobar el conjunto

  • Valida el archivo de Compose, construye la imagen y arranca ambos servicios.
  • Abre http://localhost:8080/ y comprueba que la aplicación de votación funciona a través de Nginx.
  • Revisa el estado y los logs de los servicios si la aplicación no responde.
  • Comprueba que puedes detener el conjunto mediante Compose y documenta los comandos utilizados.

Entrega

Adjunta el enlace al repositorio de GitHub con el proyecto y el archivo docker-compose.yaml funcionando. Incluye un README.md con:

  • Los comandos de construcción, arranque y parada.
  • Una captura o evidencia de la web funcionando en http://localhost:8080/.
  • Una explicación de entre tres y cinco líneas sobre el papel de Nginx delante de Flask y Gunicorn.

Evaluación

  • Archivo Compose con los dos servicios y la arquitectura solicitada: 4 puntos.
  • Nginx conectado a la aplicación y acceso por el puerto 8080: 3 puntos.
  • README con capturas y comandos: 2 puntos.
  • Buenas prácticas adicionales, como política de reinicio, variables o cabeceras de seguridad: 1 punto.

Materiales de la tarea