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

Docker build --ssh default无法挂载SSH密钥,克隆私有库失败求助

Docker构建时SSH克隆私有库失败的解决方法

问题核心

你遇到的Host key verification failed错误,本质是第一个RUN指令生成的known_hosts在第二个RUN中不生效——Docker的每个RUN指令都是独立的容器层,前一个RUN创建的~/.ssh目录和known_hosts不会被后续RUN继承,导致git克隆时无法验证Bitbucket的主机密钥。

修正步骤

1. 合并SSH配置与克隆指令到同一个RUN

将添加known_hosts和git克隆的操作放在同一个RUN里,确保上下文一致:

RUN --mount=type=ssh \
    mkdir -p -m 0700 ~/.ssh \
    && ssh-keyscan bitbucket.org >> ~/.ssh/known_hosts \
    && git clone git@bitbucket.org:devteam/db.git

2. 检查本地SSH密钥权限

确保本地的~/.ssh/id_rsa权限正确(必须是600,否则Docker无法读取):

chmod 600 ~/.ssh/id_rsa

3. (可选)使用SSH Agent传递密钥(若密钥有密码)

如果你的SSH密钥设置了密码,先启动ssh-agent并添加密钥:

eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa

然后简化构建命令,让Docker直接使用agent中的密钥:

DOCKER_BUILDKIT=1 BUILDKIT_PROGRESS=plain docker build --ssh default -t dev-build .

4. (测试用)临时跳过主机密钥验证(不推荐生产环境)

如果只是快速测试,可以通过GIT_SSH_COMMAND跳过验证:

RUN --mount=type=ssh \
    GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=no" git clone git@bitbucket.org:devteam/db.git

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 05:32:15