version: "3.8" 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 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