Files
mem0-server/docker-compose.yaml
2026-03-06 20:52:16 +08:00

57 lines
1.6 KiB
YAML

name: mem0-dev
services:
mem0:
build:
context: .. # Set context to parent directory
dockerfile: server/dev.Dockerfile
ports:
- "8888:8000"
env_file:
- .env
networks:
- mem0_network
volumes:
- ./chroma_db:/app/chroma_db # ChromaDB storage
- ./history:/app/history # History db location
- .:/app # Server code. This allows to reload the app when the server code is updated
- ../mem0:/app/packages/mem0 # Mem0 library. This allows to reload the app when the library code is updated
command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload # Enable auto-reload
environment:
- PYTHONDONTWRITEBYTECODE=1 # Prevents Python from writing .pyc files
- PYTHONUNBUFFERED=1 # Ensures Python output is sent straight to terminal
- CHROMA_DB_PATH=/app/chroma_db
- CHROMA_COLLECTION_NAME=memories
- SQLITE_DB_PATH=/app/graph_store.db
- OLLAMA_HOST=http://ollama:11434
- OLLAMA_LLM_MODEL=llama3.2
- OLLAMA_EMBEDDER_MODEL=nomic-embed-text
- HISTORY_DB_PATH=/app/history/history.db
depends_on:
ollama:
condition: service_healthy
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: on-failure
networks:
- mem0_network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:11434/api/tags"]
interval: 5s
timeout: 5s
retries: 10
start_period: 60s
volumes:
- ollama_data:/root/.ollama
ports:
- "11434:11434"
profiles: ["gpu"]
volumes:
ollama_data: {}
networks:
mem0_network:
driver: bridge