version: '3.8' services: # Redis 缓存服务 redis: image: redis:8.0-alpine container_name: eino-redis ports: - "6380:6379" command: redis-server --appendonly yes volumes: - redis_data:/data healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 3 networks: - eino-network # ChromaDB 向量数据库 chromadb: image: chromadb/chroma:latest container_name: eino-chromadb ports: - "8001:8000" environment: - CHROMA_SERVER_HOST=0.0.0.0 - CHROMA_SERVER_HTTP_PORT=8000 volumes: - chromadb_data:/chroma/chroma healthcheck: test: ["CMD", "curl", "http://localhost:8000"] interval: 15s timeout: 5s retries: 3 networks: - eino-network # Coze-Loop 监控服务 # coze-loop: # image: cozedev/coze-loop:latest # container_name: eino-coze-loop # ports: # - "8080:8080" # environment: # - COZE_LOOP_PORT=8080 # - COZE_LOOP_HOST=0.0.0.0 # volumes: # - coze_data:/app/data # healthcheck: # test: ["CMD", "curl", "-f", "http://localhost:8080/health"] # interval: 20s # timeout: 5s # retries: 3 # networks: # - eino-network # 智能客服后端服务 eino-service: build: context: . dockerfile: Dockerfile container_name: eino-customer-service ports: - "8302:8302" environment: - SERVER_HTTP_ADDR=0.0.0.0:8302 - REDIS_ADDR=redis:6379 - CHROMADB_ADDR=http://chromadb:8000 - OLLAMA_ADDR=http://host.docker.internal:11434 - COZE_LOOP_ADDR=http://coze-loop:8080 volumes: - ./data:/app/data - ./configs:/app/configs depends_on: redis: condition: service_healthy chromadb: condition: service_healthy healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8302/api/system/status"] interval: 30s timeout: 10s retries: 3 networks: - eino-network volumes: redis_data: driver: local chromadb_data: driver: local coze_data: driver: local networks: eino-network: driver: bridge