74 lines
2.0 KiB
YAML
74 lines
2.0 KiB
YAML
services:
|
|
# Redis - Message broker for Celery
|
|
redis:
|
|
image: redis:8-alpine
|
|
container_name: mydocmanager-redis
|
|
ports:
|
|
- "6379:6379"
|
|
networks:
|
|
- mydocmanager-network
|
|
|
|
# MongoDB - Final database for results
|
|
mongodb:
|
|
image: mongo:7
|
|
container_name: mydocmanager-mongodb
|
|
ports:
|
|
- "27017:27017"
|
|
environment:
|
|
MONGO_INITDB_ROOT_USERNAME: admin
|
|
MONGO_INITDB_ROOT_PASSWORD: password123
|
|
MONGO_INITDB_DATABASE: mydocmanager
|
|
volumes:
|
|
- ./volumes/db:/data/db
|
|
networks:
|
|
- mydocmanager-network
|
|
|
|
# File Processor - FastAPI + file monitoring + Celery task dispatch
|
|
file-processor:
|
|
build:
|
|
context: ./src/file-processor
|
|
dockerfile: Dockerfile
|
|
container_name: mydocmanager-file-processor
|
|
ports:
|
|
- "8000:8000"
|
|
environment:
|
|
- REDIS_URL=redis://redis:6379/0
|
|
- MONGODB_URL=mongodb://admin:password123@mongodb:27017/mydocmanager?authSource=admin
|
|
- PYTHONPATH=/app
|
|
volumes:
|
|
- ./src/file-processor:/app
|
|
- ./volumes/watched_files:/watched_files
|
|
- ./volumes/objects:/objects
|
|
depends_on:
|
|
- redis
|
|
- mongodb
|
|
networks:
|
|
- mydocmanager-network
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
|
|
|
|
# Worker - Celery workers for document processing
|
|
worker:
|
|
build:
|
|
context: ./src/worker
|
|
dockerfile: Dockerfile
|
|
container_name: mydocmanager-worker
|
|
environment:
|
|
- REDIS_URL=redis://redis:6379/0
|
|
- MONGODB_URL=mongodb://admin:password123@mongodb:27017/mydocmanager?authSource=admin
|
|
- PYTHONPATH=/app
|
|
volumes:
|
|
- ./src/worker/tasks:/app
|
|
- ./volumes/watched_files:/watched_files
|
|
depends_on:
|
|
- redis
|
|
- mongodb
|
|
networks:
|
|
- mydocmanager-network
|
|
command: celery -A main worker --loglevel=info
|
|
|
|
volumes:
|
|
mongodb-data:
|
|
|
|
networks:
|
|
mydocmanager-network:
|
|
driver: bridge |