open-navigator / docker-compose.yml
jcbowyer's picture
Clean HuggingFace deployment without binary files
61d29fc
version: '3.8'
services:
api:
build: .
container_name: open-navigator-api
ports:
- "8000:8000"
environment:
- OPENAI_API_KEY=${OPENAI_API_KEY}
- DATABRICKS_HOST=${DATABRICKS_HOST}
- DATABRICKS_TOKEN=${DATABRICKS_TOKEN}
- QDRANT_HOST=qdrant
- LOG_LEVEL=INFO
env_file:
- .env
volumes:
- ./logs:/app/logs
depends_on:
- qdrant
restart: unless-stopped
networks:
- oral-health-network
postgres:
image: postgres:16
container_name: open-navigator-postgres
ports:
- "5433:5432"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=password
- POSTGRES_DB=open_navigator
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
networks:
- oral-health-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5
qdrant:
image: qdrant/qdrant:latest
container_name: oral-health-qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- qdrant_storage:/qdrant/storage
restart: unless-stopped
networks:
- oral-health-network
# Optional: Jupyter notebook for analysis
notebook:
build: .
container_name: oral-health-notebook
command: jupyter lab --ip=0.0.0.0 --port=8888 --no-browser --allow-root
ports:
- "8888:8888"
environment:
- JUPYTER_ENABLE_LAB=yes
env_file:
- .env
volumes:
- ./notebooks:/app/notebooks
- ./data:/app/data
networks:
- oral-health-network
volumes:
qdrant_storage:
postgres_data:
networks:
oral-health-network:
driver: bridge