80 lines
2.1 KiB
YAML
80 lines
2.1 KiB
YAML
services:
|
|
# FastAPI application
|
|
api:
|
|
image: redbear-mem-open:latest
|
|
container_name: api
|
|
ports:
|
|
- "8002:8000"
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./files:/files
|
|
- /etc/localtime:/etc/localtime:ro
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload --log-level debug
|
|
restart: unless-stopped
|
|
networks:
|
|
- default
|
|
- celery
|
|
- sandbox
|
|
depends_on:
|
|
- worker-memory
|
|
- worker-document
|
|
|
|
# Memory worker - Memory read/write tasks (threads pool for asyncio)
|
|
worker-memory:
|
|
image: redbear-mem-open:latest
|
|
container_name: worker-memory
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./files:/files
|
|
- /etc/localtime:/etc/localtime:ro
|
|
command: celery -A app.celery_worker.celery_app worker -E --loglevel=info --pool=threads --concurrency=100 --queues=memory_tasks -n memory_worker@%h
|
|
restart: unless-stopped
|
|
networks:
|
|
- celery
|
|
|
|
# Document worker - Document parsing tasks (prefork for CPU-bound)
|
|
worker-document:
|
|
image: redbear-mem-open:latest
|
|
container_name: worker-document
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./files:/files
|
|
- /etc/localtime:/etc/localtime:ro
|
|
command: celery -A app.celery_worker.celery_app worker -E --loglevel=info --pool=prefork --concurrency=4 --queues=document_tasks --max-tasks-per-child=100 -n document_worker@%h
|
|
restart: unless-stopped
|
|
networks:
|
|
- celery
|
|
|
|
# Celery Beat - scheduler
|
|
beat:
|
|
image: redbear-mem-open:latest
|
|
container_name: celery-beat
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./files:/files
|
|
- /etc/localtime:/etc/localtime:ro
|
|
command: celery -A app.celery_worker.celery_app beat --loglevel=info
|
|
restart: unless-stopped
|
|
networks:
|
|
- celery
|
|
depends_on:
|
|
- worker-memory
|
|
|
|
sandbox:
|
|
image: redbear_sandbox:latest
|
|
container_name: sandbox
|
|
ports:
|
|
- "8194"
|
|
command: /code/.venv/bin/uvicorn main:app --host 0.0.0.0 --port 8194 --log-level debug
|
|
restart: unless-stopped
|
|
networks:
|
|
- sandbox
|
|
|
|
networks:
|
|
celery:
|
|
sandbox:
|