Files
antiwear-gateway/docker-compose.yml
ZF sun 7d07eee2be feat: 添加数字人对接中转服务 Docker Compose 部署方案
- digital-human: FastAPI 中转服务,连接客户端与 Dify LLM 平台
- Redis: 容器内缓存,支持请求体哈希缓存(300s TTL)
- 支持通过 DH_PORT 自定义宿主机映射端口
- Redis 默认不暴露端口,通过 docker-compose.redis-expose.yml 按需开启
- 显式声明 digital-human-net 网络,容器间通过内部 DNS 互通
- 修复 redis.ConnectionError 导入路径(使用 redis.exceptions)
- Dockerfile pip 安装回退机制,避免镜像源不可用时构建失败
- 新增 .gitignore 防止 .env 密钥泄露
2026-04-22 14:24:59 +08:00

62 lines
2.0 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# 数字人对接中转服务 - 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