症状
cargo build 因 fatal: not a git repository 中止,通常只在 Docker 或 CI 中出现。在完整检出上的本地构建则正常。
诊断
检查是否存在 git 及仓库元数据:
git --version
ls -a .git
cargo build -v 2>&1 | grep -i git
修复
安装 git 并在需要处保留 .git:
RUN apt-get update && apt-get install -y git
优先使用 registry 依赖,或将其 vendor 化:
cargo vendor
再通过配置把构建指向 vendored 目录。
验证
在同一容器中重跑构建;依赖解析完成并进入编译阶段,不再出现 not a git repository 提示。