Files
mve-micro-docs/docker-compose.yml
Ernesto Herrera fcc516c9b3 feat: Agregar soporte OCR con Tesseract para PDFs escaneados
- Integrar Tesseract OCR para leer PDFs escaneados automáticamente
- Detectar automáticamente si el PDF tiene texto o requiere OCR
- Agregar servicio ocr_service.py con funciones de OCR
- Actualizar Dockerfile con tesseract-ocr, tesseract-ocr-spa y poppler-utils
- Agregar variables de configuración OCR (OCR_ENABLED, OCR_LANGUAGE, OCR_DPI, OCR_TIMEOUT)
- Crear endpoint de debug para ver texto extraído (/api/v1/debug/extract-text)
- Agregar scripts de instalación y prueba (install_ocr.ps1, test_ocr.py, debug_pdf.ps1)
- Documentación completa (OCR_SETUP.md, DOCKER_OCR.md, COMO_PROBAR.md)
- Actualizar docker-compose.yml con variables de entorno OCR
- Modificar pdf_text.py para usar OCR cuando sea necesario
- Actualizar requirements.txt con pytesseract, Pillow, pdf2image
2026-03-04 08:21:41 -07:00

81 lines
2.3 KiB
YAML

version: '3.8'
services:
redis:
image: redis:7-alpine
container_name: mve-redis
ports:
- "16379:6379"
volumes:
- redis_data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 3s
retries: 3
mve-incrementables-parser:
build: .
container_name: mve-incrementables-parser
ports:
- "9876:9876"
environment:
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
- JWT_SECRET=${JWT_SECRET}
- JWT_EXPIRES_MINUTES=${JWT_EXPIRES_MINUTES:-60}
- MAX_FILE_MB=${MAX_FILE_MB:-10}
- LOG_LEVEL=${LOG_LEVEL:-INFO}
- SERVICE_NAME=mve-incrementables-parser
- SERVICE_VERSION=1.0.0
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
- OCR_ENABLED=${OCR_ENABLED:-true}
- OCR_LANGUAGE=${OCR_LANGUAGE:-spa}
- OCR_DPI=${OCR_DPI:-300}
- OCR_TIMEOUT=${OCR_TIMEOUT:-300}
volumes:
- ./app:/app/app
depends_on:
redis:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9876/health"]
interval: 30s
timeout: 3s
retries: 3
start_period: 5s
celery-worker:
build: .
container_name: mve-celery-worker
command: celery -A app.core.celery_app worker --loglevel=info --concurrency=2
environment:
- AUTH_USERNAME=${AUTH_USERNAME:-admin}
- AUTH_PASSWORD_HASH=${AUTH_PASSWORD_HASH}
- JWT_SECRET=${JWT_SECRET}
- JWT_EXPIRES_MINUTES=${JWT_EXPIRES_MINUTES:-60}
- MAX_FILE_MB=${MAX_FILE_MB:-10}
- LOG_LEVEL=${LOG_LEVEL:-INFO}
- SERVICE_NAME=mve-incrementables-parser
- SERVICE_VERSION=1.0.0
- REDIS_URL=redis://redis:6379/0
- CELERY_BROKER_URL=redis://redis:6379/0
- CELERY_RESULT_BACKEND=redis://redis:6379/0
- OCR_ENABLED=${OCR_ENABLED:-true}
- OCR_LANGUAGE=${OCR_LANGUAGE:-spa}
- OCR_DPI=${OCR_DPI:-300}
- OCR_TIMEOUT=${OCR_TIMEOUT:-300}
volumes:
- ./app:/app/app
depends_on:
redis:
condition: service_healthy
restart: unless-stopped
volumes:
redis_data: