services: contract-comparison-api: build: context: . dockerfile: Dockerfile ports: - "8000:8000" environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - LANGFUSE_PUBLIC_KEY=${LANGFUSE_PUBLIC_KEY} - LANGFUSE_SECRET_KEY=${LANGFUSE_SECRET_KEY} - LANGFUSE_HOST=${LANGFUSE_HOST:-https://cloud.langfuse.com} - MULTIMODAL_PROVIDER=${MULTIMODAL_PROVIDER:-openai} - OPENROUTER_MODEL=${OPENROUTER_MODEL:-google/gemini-2.5-pro} - AGENT_PROVIDER_PRIORITY=${AGENT_PROVIDER_PRIORITY:-openrouter,openai,gemini} volumes: - ./data:/app/data:ro restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 3 contract-comparison-frontend: build: context: . dockerfile: Dockerfile.frontend ports: - "8501:8501" environment: - PYTHONUNBUFFERED=1 - API_URL=http://contract-comparison-api:8000 volumes: - ./data:/app/data:ro depends_on: - contract-comparison-api restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"] interval: 30s timeout: 10s retries: 3