# Backend development configuration # Usage: docker-compose up -d services: app: build: context: ./backend dockerfile: Dockerfile container_name: polly_logfire_backend ports: - "8000:8000" volumes: - ./backend/app:/app/app:ro - ./backend/cli:/app/cli:ro env_file: - ./backend/.env environment: - DEBUG=true - ENVIRONMENT=local - POSTGRES_HOST=db - REDIS_HOST=redis command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload networks: - backend depends_on: db: condition: service_healthy redis: condition: service_healthy restart: unless-stopped db: image: postgres:16-alpine container_name: polly_logfire_db environment: - POSTGRES_USER=${POSTGRES_USER:-postgres} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres} - POSTGRES_DB=${POSTGRES_DB:-polly_logfire} volumes: - postgres_data:/var/lib/postgresql/data # Port exposed only for local development - remove in production ports: - "5432:5432" networks: - backend healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-postgres}"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped redis: image: redis:7-alpine container_name: polly_logfire_redis # Port exposed only for local development - remove in production ports: - "6379:6379" volumes: - redis_data:/data networks: - backend healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 restart: unless-stopped networks: backend: driver: bridge volumes: postgres_data: redis_data: