Actualización del 2025-08-16 a las 13:12:01

This commit is contained in:
jlimolina 2025-08-16 13:12:01 +02:00
parent b44096b07c
commit b26e9ad87f
13 changed files with 710 additions and 222 deletions

65
docker-compose.yml Normal file
View file

@ -0,0 +1,65 @@
version: '3.8'
services:
# Servicio de la Base de Datos PostgreSQL
db:
image: postgres:15
container_name: rss_db
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
volumes:
# Volumen para persistir los datos de la base de datos
- postgres_data:/var/lib/postgresql/data
# Monta la carpeta local con los scripts SQL para inicializar la BD la primera vez
- ./init-db:/docker-entrypoint-initdb.d
restart: always
healthcheck:
# Comprueba si la base de datos está lista para aceptar conexiones
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 5s
timeout: 5s
retries: 5
# Servicio de la Aplicación Web (Gunicorn)
web:
build: .
container_name: rss_web
command: gunicorn --bind 0.0.0.0:8000 --workers 3 app:app
ports:
- "8001:8000"
environment:
- DB_HOST=db
- DB_PORT=5432
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- SECRET_KEY=${SECRET_KEY}
depends_on:
db:
# Espera a que el healthcheck de la base de datos sea exitoso antes de iniciar
condition: service_healthy
restart: always
# Servicio del Planificador de Tareas (Scheduler)
scheduler:
build: .
container_name: rss_scheduler
command: python scheduler.py
environment:
- DB_HOST=db
- DB_PORT=5432
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- SECRET_KEY=${SECRET_KEY}
depends_on:
db:
# También espera a que la base de datos esté saludable
condition: service_healthy
restart: always
# Define el volumen nombrado para la persistencia de datos
volumes:
postgres_data: