rss/docker-compose.yml
2025-10-17 04:10:09 +02:00

134 lines
2.9 KiB
YAML

services:
db:
image: postgres:15
container_name: rss_db
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASS}
volumes:
- postgres_data:/var/lib/postgresql/data
- ./init-db:/docker-entrypoint-initdb.d
restart: always
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"]
interval: 5s
timeout: 5s
retries: 5
web:
build:
context: .
args:
TORCH_CUDA: cu121
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}
- WEB_TRANSLATED_DEFAULT=1
- DEFAULT_LANG=es
- TRANSLATION_PREFERRED_LANGS=es
depends_on:
db:
condition: service_healthy
restart: always
scheduler:
build:
context: .
args:
TORCH_CUDA: cu121
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:
condition: service_healthy
restart: always
translator:
build:
context: .
args:
TORCH_CUDA: cu121
container_name: rss_translator
command: python translation_worker.py
environment:
- DB_HOST=db
- DB_PORT=5432
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- TARGET_LANGS=es
- TRANSLATOR_BATCH=8
- ENQUEUE=200
- TRANSLATOR_SLEEP_IDLE=5
- MAX_SRC_TOKENS=680
- MAX_NEW_TOKENS=400
- NUM_BEAMS_TITLE=2
- NUM_BEAMS_BODY=1
- UNIVERSAL_MODEL=facebook/nllb-200-1.3B
- CHUNK_BY_SENTENCES=True
- CHUNK_MAX_TOKENS=700
- CHUNK_OVERLAP_SENTS=1
- CLEAN_ARTICLE=1
- DEVICE=cuda
- PYTHONUNBUFFERED=1
- HF_HOME=/root/.cache/huggingface
- TOKENIZERS_PARALLELISM=false
- PYTORCH_CUDA_ALLOC_CONF=max_split_size_mb:64,garbage_collection_threshold:0.9
- NVIDIA_VISIBLE_DEVICES=all
- NVIDIA_DRIVER_CAPABILITIES=compute,utility
volumes:
- hf_cache:/root/.cache/huggingface
depends_on:
db:
condition: service_healthy
restart: always
gpus: all
ner:
build:
context: .
args:
TORCH_CUDA: cu121
container_name: rss_ner
command: python ner_worker.py
environment:
- DB_HOST=db
- DB_PORT=5432
- DB_NAME=${DB_NAME}
- DB_USER=${DB_USER}
- DB_PASS=${DB_PASS}
- NER_LANG=es
- NER_BATCH=64
depends_on:
db:
condition: service_healthy
restart: always
volumes:
postgres_data:
hf_cache: