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 puerto8000. - 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.yamlen la raíz del proyecto, junto a las carpetasapp/ynginx/.
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_appy después Nginx. - Monta
./nginx/default.confen/etc/nginx/conf.d/default.confen modo de solo lectura. - Publica el puerto
8080del equipo hacia el puerto80del 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.