Docker:解决私有仓库克隆的 GitHub SSH 密钥问题
尝试运行使用私有 GitHub 上的 golang 服务的容器时存储库,您在 go get 过程中可能会遇到错误。其中一个错误与读取 GitHub SSH 公钥的问题有关。
问题:
在 Dockerfile 中运行 go get github.com/
原因:
此错误表示 Dockerfile 未正确配置为使用 SSH 向 GitHub 进行身份验证。 ssh-keyscan 命令显示公钥与远程主机的记录不匹配。
解决方案:
要解决此问题,您需要将 git config 命令添加到您的Dockerfile 强制使用 SSH 而不是默认的 HTTPS 协议进行 GitHub 克隆。下面是包含此修复的 Dockerfile 示例:
FROM golang RUN apt-get update && apt-get install -y ca-certificates git-core ssh ADD keys/my_key_rsa /root/.ssh/id_rsa RUN chmod 700 /root/.ssh/id_rsa RUN echo "Host github.com\n\tStrictHostKeyChecking no\n" >> /root/.ssh/config RUN git config --global url.ssh://[email protected]/.insteadOf https://github.com/ ADD . /go/src/github.com/myaccount/myprivaterepo RUN go get github.com/myaccount/myprivaterepo RUN go install github.com/myaccount/myprivaterepo
这个修改后的 Dockerfile 确保使用 SSH 进行 GitHub 克隆,解决了与读取公钥相关的错误。它还包括安装 SSH 和配置身份密钥的必要步骤。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3