You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker中使用uv结合缓存与Git仓库时出现hardlink different from source错误

Docker环境下uv install从Git仓库安装包失败的排查与解决

报错信息

error: Failed to download and build: `gunicorn @ git+https://github.com/StarfishStorage/gunicorn.git@a5bf38eea1f7642ac092e4a1639e2ccf0f4cf93b`
02:24:37   Caused by: Git operation failed
02:24:37   Caused by: process didn't exit successfully: `git clone --local /root/.cache/uv/git-v0/db/a172a1434ad2fe00 /root/.cache/uv/git-v0/checkouts/a172a1434ad2fe00/a5bf38ee` (exit status: 128)
02:24:37 --- stderr
02:24:37 Cloning into '/root/.cache/uv/git-v0/checkouts/a172a1434ad2fe00/a5bf38ee'...
02:24:37 fatal: hardlink different from source at '/root/.cache/uv/git-v0/checkouts/a172a1434ad2fe00/a5bf38ee/.git/objects/pack/pack-f885b85a815c5038c511818577ead54db50e3281.idx'

问题原因

Docker使用的overlayfs文件系统存在特性:创建指向源文件的硬链接时,源文件的inode可能会因为文件跨文件系统层而发生变化。而Git在执行本地克隆时,会严格校验硬链接与源文件的属性一致性,一旦发现不一致就会拒绝该硬链接并抛出错误。

解决方案

  • 重试安装操作:首次创建硬链接后,文件会被移到新的文件系统层,后续再创建硬链接时不会再改变inode,重试uv install即可成功。
  • 修改Git源码(可选):这是Git的一个逻辑瑕疵,可通过在创建硬链接后刷新文件的stat信息来修复,但需要修改Git的源码实现,适合有开发能力的用户尝试。

内容的提问来源于stack exchange,提问作者ddzialak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 19:07:16