name: benevoles services: db: image: postgres:16-alpine environment: POSTGRES_USER: ${POSTGRES_USER:-benevoles} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-benevoles} POSTGRES_DB: ${POSTGRES_DB:-benevoles} ports: - "5432:5432" volumes: - db_data:/var/lib/postgresql/data - ./docker/postgres-init:/docker-entrypoint-initdb.d:ro healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-benevoles}"] interval: 5s timeout: 5s retries: 10 backend: build: ./backend command: uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload environment: DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-benevoles}:${POSTGRES_PASSWORD:-benevoles}@db:5432/${POSTGRES_DB:-benevoles} TEST_DATABASE_URL: postgresql+psycopg://${POSTGRES_USER:-benevoles}:${POSTGRES_PASSWORD:-benevoles}@db:5432/benevoles_test ENVIRONMENT: development JWT_SECRET: ${JWT_SECRET:-dev-only-change-me} ports: - "8000:8000" depends_on: db: condition: service_healthy volumes: - ./backend:/app - venv:/app/.venv volumes: db_data: venv: