version: '3.8' services: # Redis for KV and Doc Status storage redis: image: redis:7-alpine container_name: lightrag-test-redis ports: - "6379:6379" command: redis-server --appendonly yes healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 5s timeout: 3s retries: 5 # Neo4j for Graph storage neo4j: image: neo4j:5.17.0 container_name: lightrag-test-neo4j ports: - "7474:7474" # HTTP - "7687:7687" # Bolt environment: - NEO4J_AUTH=neo4j/testpassword123 - NEO4J_PLUGINS=["apoc"] - NEO4J_dbms_security_procedures_unrestricted=apoc.* - NEO4J_dbms_memory_heap_initial__size=512m - NEO4J_dbms_memory_heap_max__size=1G healthcheck: test: ["CMD-SHELL", "cypher-shell -u neo4j -p testpassword123 'RETURN 1'"] interval: 10s timeout: 10s retries: 10 start_period: 40s # Milvus etcd etcd: container_name: lightrag-test-milvus-etcd image: quay.io/coreos/etcd:v3.5.5 environment: - ETCD_AUTO_COMPACTION_MODE=revision - ETCD_AUTO_COMPACTION_RETENTION=1000 - ETCD_QUOTA_BACKEND_BYTES=4294967296 - ETCD_SNAPSHOT_COUNT=50000 volumes: - etcd-data:/etcd command: etcd -advertise-client-urls=http://127.0.0.1:2379 -listen-client-urls http://0.0.0.0:2379 --data-dir /etcd healthcheck: test: ["CMD", "etcdctl", "endpoint", "health"] interval: 30s timeout: 20s retries: 3 # Milvus MinIO minio: container_name: lightrag-test-milvus-minio image: minio/minio:RELEASE.2023-03-20T20-16-18Z environment: MINIO_ROOT_USER: minioadmin MINIO_ROOT_PASSWORD: minioadmin ports: - "9001:9001" - "9000:9000" volumes: - minio-data:/minio_data command: minio server /minio_data --console-address ":9001" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"] interval: 30s timeout: 20s retries: 3 # Milvus Standalone milvus: container_name: lightrag-test-milvus image: milvusdb/milvus:v2.4.0 command: ["milvus", "run", "standalone"] security_opt: - seccomp:unconfined environment: ETCD_ENDPOINTS: etcd:2379 MINIO_ADDRESS: minio:9000 volumes: - milvus-data:/var/lib/milvus healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9091/healthz"] interval: 30s start_period: 90s timeout: 20s retries: 3 ports: - "19530:19530" - "9091:9091" depends_on: - etcd - minio volumes: etcd-data: minio-data: milvus-data: