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