Files
scan-ocr-cheques/docker-compose.yml
2025-07-09 06:40:36 +02:00

119 lines
3.3 KiB
YAML

version: '3.8'
services:
api:
build: ./api
container_name: cheque-scanner-api
ports:
- "8001:8000"
depends_on:
- redis
volumes:
- shared_data:/app/data
- ./shared:/app/shared
environment:
- REDIS_URL=redis://redis:6379/0
- UPLOAD_FOLDER=/app/data/uploads
- RESULT_FOLDER=/app/data/results
- TEMP_FOLDER=/app/data/tmp
- DEBUG=false
- API_KEY=${API_KEY:-your-secret-api-key}
- MAX_WORKERS=3
restart: unless-stopped
networks:
- cheque-scanner-network
worker1:
build: ./worker
depends_on:
- redis
volumes:
- shared_data:/app/data
- ./shared:/app/shared
- ./api/app:/app/api_app
environment:
- REDIS_URL=redis://redis:6379/0
- UPLOAD_FOLDER=/app/data/uploads
- RESULT_FOLDER=/app/data/results
- TEMP_FOLDER=/app/data/tmp
- QUEUE_NAME=cheque_processing
- HIGH_PRIORITY_QUEUE_NAME=cheque_processing_high
- TESSERACT_DATA_PATH=/usr/share/tesseract-ocr/5/tessdata
- DEFAULT_OCR_LANGUAGE=fra
- ALTERNATIVE_OCR_LANGUAGE=eng
- WORKER_NAME=worker-1
command: ["python", "worker.py", "--queues", "cheque_processing", "--name", "worker-1"]
restart: unless-stopped
networks:
- cheque-scanner-network
worker2:
build: ./worker
depends_on:
- redis
volumes:
- shared_data:/app/data
- ./shared:/app/shared
- ./api/app:/app/api_app
environment:
- REDIS_URL=redis://redis:6379/0
- UPLOAD_FOLDER=/app/data/uploads
- RESULT_FOLDER=/app/data/results
- TEMP_FOLDER=/app/data/tmp
- QUEUE_NAME=cheque_processing
- HIGH_PRIORITY_QUEUE_NAME=cheque_processing_high
- TESSERACT_DATA_PATH=/usr/share/tesseract-ocr/5/tessdata
- DEFAULT_OCR_LANGUAGE=fra
- ALTERNATIVE_OCR_LANGUAGE=eng
- WORKER_NAME=worker-2
command: ["python", "worker.py", "--queues", "cheque_processing", "--name", "worker-2"]
restart: unless-stopped
networks:
- cheque-scanner-network
# Service supplémentaire pour traiter les requêtes prioritaires
priority-worker:
build: ./worker
depends_on:
- redis
volumes:
- shared_data:/app/data
- ./shared:/app/shared
- ./api/app:/app/api_app
environment:
- REDIS_URL=redis://redis:6379/0
- UPLOAD_FOLDER=/app/data/uploads
- RESULT_FOLDER=/app/data/results
- TEMP_FOLDER=/app/data/tmp
- QUEUE_NAME=cheque_processing_high
- TESSERACT_DATA_PATH=/usr/share/tesseract-ocr/5/tessdata
- DEFAULT_OCR_LANGUAGE=fra
- ALTERNATIVE_OCR_LANGUAGE=eng
- WORKER_NAME=priority-worker
entrypoint: ["/priority_entrypoint.sh"]
command: ["python", "worker.py", "--queues", "cheque_processing_high", "--name", "priority-worker"]
restart: unless-stopped
networks:
- cheque-scanner-network
redis:
image: redis:alpine
container_name: cheque-scanner-redis
ports:
- "6380:6379"
volumes:
- redis_data:/data
command: ["redis-server", "--appendonly", "yes"]
restart: unless-stopped
networks:
- cheque-scanner-network
volumes:
shared_data:
name: cheque-scanner-shared-data
redis_data:
name: cheque-scanner-redis-data
networks:
cheque-scanner-network:
name: cheque-scanner-network