| version: '3.8' | |
| services: | |
| db: | |
| image: postgres:15-alpine | |
| container_name: evalforge_db | |
| environment: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: evalforge | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data | |
| restart: always | |
| redis: | |
| image: redis:7-alpine | |
| container_name: evalforge_redis | |
| ports: | |
| - "6379:6379" | |
| restart: always | |
| web: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| container_name: evalforge_web | |
| command: uvicorn backend.app.main:app --host 0.0.0.0 --port 8000 | |
| environment: | |
| - POSTGRES_SERVER=db | |
| - POSTGRES_USER=postgres | |
| - POSTGRES_PASSWORD=postgres | |
| - POSTGRES_DB=evalforge | |
| - REDIS_HOST=redis | |
| - OPENAI_API_KEY=${OPENAI_API_KEY} | |
| - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} | |
| - GEMINI_API_KEY=${GEMINI_API_KEY} | |
| - EVALFORGE_API_KEY=evalforge_admin_secret_key | |
| ports: | |
| - "8000:8000" | |
| depends_on: | |
| - db | |
| - redis | |
| restart: always | |
| celery_worker: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| container_name: evalforge_worker | |
| command: celery -A backend.app.core.celery_app worker --loglevel=info | |
| environment: | |
| - POSTGRES_SERVER=db | |
| - POSTGRES_USER=postgres | |
| - POSTGRES_PASSWORD=postgres | |
| - POSTGRES_DB=evalforge | |
| - REDIS_HOST=redis | |
| - OPENAI_API_KEY=${OPENAI_API_KEY} | |
| - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} | |
| - GEMINI_API_KEY=${GEMINI_API_KEY} | |
| - EVALFORGE_API_KEY=evalforge_admin_secret_key | |
| depends_on: | |
| - db | |
| - redis | |
| restart: always | |
| volumes: | |
| postgres_data: | |