Skip to content

fix(docker): 默认 HF_ENDPOINT 改回 huggingface.co + whisper 模型缓存独立卷 - #449

Open
EricWang1358 wants to merge 1 commit into
JefferyHcool:masterfrom
EricWang1358:fix/docker-hf-endpoint-and-whisper-persistence
Open

fix(docker): 默认 HF_ENDPOINT 改回 huggingface.co + whisper 模型缓存独立卷#449
EricWang1358 wants to merge 1 commit into
JefferyHcool:masterfrom
EricWang1358:fix/docker-hf-endpoint-and-whisper-persistence

Conversation

@EricWang1358

Copy link
Copy Markdown

改动概述

ix(docker): Dockerfile / docker-compose 默认 HF_ENDPOINT 从 https://hf-mirror.com 改回 https://huggingface.co;Whisper 模型缓存独立命名卷持久化。

为什么

Part of #417(Docker 部署下 Whisper 模型下载失败)。

  • hf-mirror.com 是中国大陆的 HuggingFace 镜像,境外网络常不可达,这次报错的用户就是有 VPN 仍命中;
  • 同时 whisper.py 顶部注释「HF_ENDPOINT 已经在 Dockerfile 里指到 huggingface.co」与 Dockerfile 实际值自相矛盾,改回 huggingface.co 即可消除这个文档偏差;
  • 容器重建时 /app/models/whisper 是匿名卷,会随容器销毁而消失,常见「重 build 一次又得等半小时下模型」的体验问题。

做了什么

  • Dockerfile / Dockerfile.gpu / Dockerfile.complete (3 处): 默认 ENV HF_ENDPOINT 从 https://hf-mirror.com 改为 https://huggingface.co。
  • docker-compose.yml / docker-compose.gpu.yml (2 处):
    • 在 �ackend 服务的 environment 中显式设 HF_ENDPOINT=https://huggingface.co,避免被外部 .env 残留值污染;
    • 新增 named volume whisper-models 挂载到 /app/models/whisper,容器重建保留已下载的 Whisper / Faster-Whisper 模型。
  • �ackend/app/transcriber/whisper.py 顶部说明注释同步更新(hf-mirror.com → huggingface.co),与代码一致。
  • CHANGELOG.md: 新增 [Unreleased] / Fixed 段。

测试方式

  • 手动构建验证:docker-compose build backend 成功,容器内 env | grep HF_ENDPOINT 输出 HF_ENDPOINT=https://huggingface.co。
  • 命名卷验证:docker volume ls | grep whisper-models 出现,容器内 ls /app/models/whisper 看到 models--Systran--faster-whisper-* 目录。
  • 镜像下载验证:选择 Whisper small 模型,首容器下载后,docker-compose down && docker-compose up -d 重建,模型不应被重新下载。
  • 国内用户兼容:HF_ENDPOINT=https://hf-mirror.com 写入 .env 后,docker-compose up -d 启动的容器内 HF_ENDPOINT 应显示 https://hf-mirror.com(环境变量优先级高于 Dockerfile 内 ENV)。

回归风险

Checklist

  • 分支命名遵循 CONTRIBUTING.md §3( ix/docker-*)
  • base 指向 master(远程无 develop 分支)
  • Commit message 遵循 ype(scope): subject
  • 自测:Dockerfile 语法 docker-compose config 验证(若环境允许,本 PR 由 AI 代理提交,完整构建需维护者合并前在 CI 上验证)
  • 已更新 CHANGELOG.md
  • 未夹带 secrets / .env / 大型二进制
  • 单 PR 不跨多个工作区做无关改动

JefferyHcool#417 用户反馈 Docker 部署下 Whisper 模型下载失败,根因在 Dockerfile
默认 ENV HF_ENDPOINT=https://hf-mirror.com。hf-mirror 是国内镜像,境外用户
(包括部分 VPN/海外网络)常不可达或不稳定,导致 faster_whisper
huggingface_hub 拉取模型时直接失败。同时 whisper.py 顶部注释与默认值
自相矛盾('已经在 Dockerfile 里指到 huggingface.co')。

本次改动:
- Dockerfile / Dockerfile.gpu / Dockerfile.complete / 两份 docker-compose
  把默认 HF_ENDPOINT 从 https://hf-mirror.com 改为 https://huggingface.co
- whisper.py 顶部注释同步更新,消除与代码的描述偏差
- docker-compose.yml / docker-compose.gpu.yml 顶层新增命名卷
  whisper-models,挂载到 /app/models/whisper,重建容器不再丢失已下载模型
- CHANGELOG 加 [Unreleased] 段,并注明国内用户可在 .env 中显式
  设 HF_ENDPOINT=https://hf-mirror.com 保留旧行为

无新增测试(Docker 构建 / 命名卷不在 pytest 覆盖范围)。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant