# ============================================================ # 数字人对接中转服务 - docker-compose.yml # # 环境变量说明(填入 .env): # DIFY_URL - Dify 服务地址 # DIFY_API_KEY - Dify API 密钥 # DH_PORT - 宿主机映射端口(默认 8000) # REDIS_EXPOSE - Redis 是否暴露宿主机端口,默认 false(仅容器内互通) # # 使用方法: # 1. cp .env.example .env,填入 DIFY_URL 和 DIFY_API_KEY # 2. docker compose up -d # 3. 验证: curl http://localhost:${DH_PORT:-8000} # ============================================================ services: # ── Redis 缓存服务 ────────────────────────────────────── # Redis 仅在容器网络内部可用,digital-human 通过 Docker Compose # 内部 DNS(redis 服务名)直连,宿主机无法直接访问。 redis: image: redis:7-alpine container_name: digital-human-redis restart: unless-stopped networks: - digital-human-net healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 3 # ── 数字人对接中转服务 ────────────────────────────────── digital-human: build: context: . dockerfile: Dockerfile container_name: digital-human-relay restart: unless-stopped ports: - "${DH_PORT:-8000}:8000" environment: DIFY_URL: "${DIFY_URL}" DIFY_API_KEY: "${DIFY_API_KEY}" REDIS_HOST: "redis" REDIS_PORT: "6379" depends_on: redis: condition: service_healthy networks: - digital-human-net healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8000/"] interval: 30s timeout: 10s retries: 3 start_period: 15s networks: digital-human-net: driver: bridge