services: api: build: context: . dockerfile: Dockerfile.api container_name: api restart: no env_file: - .env command: python -m uvicorn api.main:app --host 0.0.0.0 --port 8000 ports: - "8000:8000" volumes: - .:/app - ./data:/app/data - ./models:/app/models depends_on: db: condition: service_healthy dns: - 8.8.8.8 - 1.1.1.1 web: build: context: . dockerfile: Dockerfile.web container_name: web restart: no environment: - API_BASE_URL=http://api:8000 - PORT=8550 - HTTP_TIMEOUT=1800 ports: - "8550:8550" depends_on: - api dns: - 8.8.8.8 - 1.1.1.1 db: image: postgres:15-alpine container_name: db restart: always environment: POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASS} POSTGRES_DB: ${DB_NAME} volumes: - ./pg_data:/var/lib/postgresql/data ports: - "5433:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER} -d ${DB_NAME}"] interval: 5s timeout: 5s retries: 10 start_period: 10s