Location: docker-compose.yml line 135
Current:
command: uvicorn main:app --host 0.0.0.0 --port 8000 --reloadProblem:
- Uses
main:appbut your code usesmain_cloud_ready.py main.pydoesn't have cloud supportmain_cloud_ready.pyhas ML risk scoring
Should be:
command: uvicorn main_cloud_ready:app --host 0.0.0.0 --port 8000 --reloadLocation: docker-compose.yml line 122-124
Current:
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch-us:9200,http://elasticsearch-eu:9200,http://elasticsearch-asia:9200
- API_PORT=8000Problem:
- Doesn't set
DEPLOYMENT_TYPE=local - Code defaults to 'local' but should be explicit
- Missing other optional env vars
Should be:
environment:
- DEPLOYMENT_TYPE=local
- ELASTICSEARCH_HOSTS=http://elasticsearch-us:9200,http://elasticsearch-eu:9200,http://elasticsearch-asia:9200
- API_PORT=8000
- API_HOST=0.0.0.0
- API_RELOAD=trueLocation: docker-compose.yml line 129-132
Current:
depends_on:
- elasticsearch-us
- elasticsearch-eu
- elasticsearch-asiaProblem:
- Only waits for containers to start, not for health checks
- API might start before Elasticsearch is ready
- Can cause connection errors
Should be:
depends_on:
elasticsearch-us:
condition: service_healthy
elasticsearch-eu:
condition: service_healthy
elasticsearch-asia:
condition: service_healthyLocation: backend/Dockerfile line 23
Current:
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]Problem:
- Default command uses
main:app - Should use
main_cloud_ready:appor be configurable
Note: This is OK since docker-compose overrides it, but inconsistent.
Location: docker-compose.yml
Problem:
- No
env_file: .envdirective - Can't easily switch between local/cloud
- Environment variables hardcoded
Should add:
env_file:
- .env- ✅ Network configuration (
phish-network) - ✅ Volume mounts for Elasticsearch data
- ✅ Port mappings (9200, 9201, 9202, 5601, 8000)
- ✅ Elasticsearch cluster configuration
- ✅ Health checks for Elasticsearch nodes
- ✅ Python version in Dockerfile (3.12)
- ✅ Requirements installation in Dockerfile
See the corrected docker-compose.yml below.