2026-05-23 20:32:12 +08:00
|
|
|
services:
|
|
|
|
|
tts-api:
|
|
|
|
|
build: .
|
2026-08-30 23:23:53 +08:00
|
|
|
image: volcano-tts-aggregator:latest
|
2026-05-23 20:32:12 +08:00
|
|
|
container_name: tts-api
|
|
|
|
|
ports:
|
|
|
|
|
- "${PORT:-8080}:8080"
|
|
|
|
|
environment:
|
2026-08-30 23:23:53 +08:00
|
|
|
# 4 个启动引导 env(仅这 4 个必看)
|
|
|
|
|
# 业务配置(api_key/resource_id/speaker/格式...)通过 WebUI 设置,
|
|
|
|
|
# 存到 /data/tts.db 持久化
|
|
|
|
|
- TTS_ADMIN_KEY=${TTS_ADMIN_KEY:-}
|
|
|
|
|
- TTS_DB_PATH=/data/tts.db
|
2026-05-23 20:32:12 +08:00
|
|
|
- PORT=8080
|
2026-08-30 23:23:53 +08:00
|
|
|
- OPENAI_TTS_API_KEY=${OPENAI_TTS_API_KEY:-}
|
2026-10-04 01:17:43 +08:00
|
|
|
# 可选,装好后也可在 /dashboard 改
|
2026-08-30 23:23:53 +08:00
|
|
|
- TRUSTED_PROXY_HOPS=${TRUSTED_PROXY_HOPS:-}
|
2026-10-04 01:17:43 +08:00
|
|
|
# v0.3.0 新增(可选):根路径 /metrics 的内网 CIDR 白名单,逗号分隔。
|
|
|
|
|
# 不配置时根路径 /metrics 完全不注册(Prometheus 请改用鉴权版 /api/admin/metrics)。
|
|
|
|
|
# ⚠️ 这里必须填「容器内网网段」,不要填 127.0.0.1/32 ——
|
|
|
|
|
# 那是容器自身回环,Prometheus 在宿主机/其他容器里根本进不来。
|
|
|
|
|
# 例:METRICS_ALLOW_CIDR=172.16.0.0/12
|
|
|
|
|
- METRICS_ALLOW_CIDR=${METRICS_ALLOW_CIDR:-}
|
2026-08-30 23:23:53 +08:00
|
|
|
volumes:
|
|
|
|
|
# DB + lock 文件必须挂载,否则容器重启后配置全丢
|
|
|
|
|
- tts-data:/data
|
2026-05-23 20:32:12 +08:00
|
|
|
restart: unless-stopped
|
|
|
|
|
healthcheck:
|
2026-10-04 01:17:43 +08:00
|
|
|
# v0.3.0:必须用 /healthz(匿名存活探针)。
|
|
|
|
|
# /health 现在需要管理凭证,而健康检查不带 Authorization ——
|
|
|
|
|
# 继续用 /health 会让容器一直被判定为 unhealthy。
|
|
|
|
|
test: ["CMD", "wget", "-qO-", "http://localhost:8080/healthz"]
|
2026-05-23 20:32:12 +08:00
|
|
|
interval: 30s
|
|
|
|
|
timeout: 5s
|
|
|
|
|
retries: 3
|
2026-08-30 23:23:53 +08:00
|
|
|
start_period: 10s
|
|
|
|
|
|
|
|
|
|
volumes:
|
|
|
|
|
tts-data:
|
|
|
|
|
name: tts-api-data
|