Volver a las tareas

DAPW · Tarea

COMPOSE 1

Instrucciones

Completa un proyecto de Docker Compose para conectar Apache con PostgreSQL. Parte de compose-01.zip, disponible en los materiales de esta tarea y enlazado desde la diapositiva 117.

El proyecto incluye la configuración del servicio web, su Dockerfile, una página HTML, un script CGI, los scripts de inicialización de la base de datos y los archivos de secretos. El archivo compose.yml hace referencia a un servicio db que todavía tienes que definir.

1. Revisar el proyecto

  • Localiza la configuración de Apache en apache/, la página en www/ y el script cgi-bin/db-mensajes.sh.
  • Lee db-init/001-create-mensajes.sql para identificar la tabla y el registro que se crean al inicializar PostgreSQL.
  • Comprueba cómo están declarados configs y secrets en compose.yml. Conserva la configuración proporcionada para el servicio web.

2. Añadir PostgreSQL a Compose

Modifica compose.yml e incorpora un servicio llamado db basado en la imagen postgres:16.

  • Configura mediante environment el nombre de la base de datos, el usuario y la ruta al archivo que contiene la contraseña.
  • Utiliza la base de datos ejemplo y el usuario usuario, que son los valores que espera el script CGI suministrado.
  • Asigna al servicio el secreto pg_pass, ya declarado en el proyecto. Indica su ruta mediante POSTGRES_PASSWORD_FILE: /run/secrets/pg_pass.
  • Monta ./db-init en /docker-entrypoint-initdb.d en modo de solo lectura para que PostgreSQL ejecute los scripts SQL al inicializar una base de datos vacía.

La conexión del script debe resolver el nombre db dentro de la red de Compose. La contraseña se toma del secreto; no tienes que escribir su valor en compose.yml.

3. Arrancar y comprobar

  • Valida la configuración con docker compose config y construye y arranca el proyecto con Compose.
  • Comprueba que los servicios web y db están en ejecución y revisa sus logs si se produce un error.
  • Abre http://localhost:8080/. La página debe mostrar los mensajes leídos desde PostgreSQL, incluido el registro inicial proporcionado por el script SQL.
  • Comprueba que la consulta a /cgi-bin/db-mensajes.sh funciona a través de Apache.

Entrega

Adjunta el enlace al repositorio de GitHub con el proyecto y el compose.yml completado. Incluye un README.md con los comandos para construir, arrancar y detener los servicios, una captura de la página mostrando los datos y una explicación breve de cómo se conectan Apache y PostgreSQL y cómo utilizan el secreto de contraseña.

Materiales de la tarea