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

Dockerfile中RUN --mount=type=ssh失效,拉取私有Python库失败求助

问题解决:Docker构建时SSH主机密钥验证失败

错误原因

容器构建环境是全新的,没有预先信任私有仓库的SSH主机密钥,首次连接时触发Host key verification failed错误,和私钥本身无关。

修复步骤

1. 在Dockerfile中添加主机密钥信任逻辑

修改RUN命令,先通过ssh-keyscan获取目标仓库主机的密钥并写入known_hosts,再执行pip install:

RUN --mount=type=ssh \
    mkdir -p ~/.ssh && \
    # 替换成你的私有仓库实际主机地址,比如git@example.com中的example.com
    ssh-keyscan example.com >> ~/.ssh/known_hosts && \
    .venv/bin/pip install SOME_LIB --extra-index-url https://example.com/pypi/ -U

2. 修正docker buildx build的--ssh参数格式

原命令的参数格式不正确,需要指定default别名对应私钥路径:

docker buildx build --ssh default=/path/to/the/private/key/id_rsa .

--mount=type=ssh默认使用default SSH连接,因此build命令中必须明确绑定default到你的私钥。

备选方案:直接复制本地信任的主机密钥

如果ssh-keyscan无法获取目标主机密钥,可将本地~/.ssh/known_hosts中对应主机的密钥行复制到项目内的known_hosts文件,然后在Dockerfile中添加:

COPY known_hosts ~/.ssh/known_hosts
RUN --mount=type=ssh .venv/bin/pip install SOME_LIB --extra-index-url https://example.com/pypi/ -U

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:57:18