Files
MyDocManager/docker-compose.yml

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