version: '3.8' services: neo4j: image: neo4j:5 container_name: graph-memory-neo4j ports: - "7474:7474" - "7687:7687" environment: - NEO4J_AUTH=neo4j/graph123 - NEO4J_PLUGINS=["apoc"] - NEO4J_server_memory_heap_initial__size=256m - NEO4J_server_memory_heap_max__size=512m volumes: - neo4j_data:/data - neo4j_logs:/logs restart: unless-stopped healthcheck: test: ["CMD-SHELL", "return cypher-shell -u neo4j -p graph123 'RETURN 1' 2>/dev/null || exit 1"] interval: 30s timeout: 10s retries: 5 networks: - graph-memory-net demo: image: python:3.11-slim container_name: graph-memory-app ports: - "8000:8000" environment: - NEO4J_URI=bolt://neo4j:7687 - NEO4J_USER=neo4j - NEO4J_PASSWORD=graph123 - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-your-api-key-here} volumes: - ..:/app working_dir: /app command: > sh -c "pip install --quiet neo4j openai && python graph_memory_demo.py" stdin_open: true tty: true depends_on: neo4j: condition: service_healthy restart: unless-stopped networks: - graph-memory-net volumes: neo4j_data: neo4j_logs: networks: graph-memory-net: driver: bridge