HF Spaces部署Docker:避坑Git LFS指针文件
300MB的PyTorch模型在本地跑得好好的,一扔到Hugging Face Spaces的Docker容器里直接崩掉,报错信息极其简陋:COPY 机制: HF Spaces 的 native build 在处理自定义 Dockerfile 时,
.gitattributes: 检查你的
下一篇
Windows更新补丁数量破600个,KVM居然有个潜伏16年的漏洞 →
RuntimeError: [enforce fail at inline_container.cc:222] . file not found: archive/data.pkl进容器一看,那个所谓的data.pkl才几百个字节。典型的Git LFS坑:Docker构建上下文里拷贝进去的是 LFS 指针文件,而不是真正的二进制大文件。
排查完发现,如果是用 COPY 指令把模型文件从仓库拉进镜像,HF 的构建环境有时不会自动帮你把 LFS 指针 resolve 成真实文件。
解决方案
想在 Dockerfile 里彻底解决这个问题,不能指望 HF 自动处理,得在构建阶段强制 pull。
一、确保 Dockerfile 安装了 git-lfs
二、在 COPY 文件之前或之后,执行 LFS 拉取命令
具体配置参考:
# 安装 git-lfs
RUN apt-get update && apt-get install -y git-lfs初始化 LFS
RUN git lfs install强制拉取 LFS 真实文件
RUN git lfs pull避坑点总结
COPY . . 这种操作极其容易把 LFS 指针文件直接搬进去,导致模型加载时报 file not found 或格式错误。.gitattributes 确认模型后缀(如 .pkl, .bin, .safetensors)已被正确追踪,否则 git lfs pull 也没用。这种低级错误浪费了我两个小时,建议所有在 HF Spaces 部署 Docker 且带大模型的开发者直接把 git lfs pull 写死在构建流程里。