首页 >后端开发 >Golang >在 Docker 中克隆私有 GitHub 存储库时,如何解决'致命:无法读取'https://github.com”的用户名:没有此类设备或地址”错误?

在 Docker 中克隆私有 GitHub 存储库时,如何解决'致命:无法读取'https://github.com”的用户名:没有此类设备或地址”错误?

Barbara Streisand
Barbara Streisand原创
2024-11-16 13:26:03964浏览

How to Resolve

Docker:解决私有仓库克隆的 GitHub SSH 密钥问题

尝试运行使用私有 GitHub 上的 golang 服务的容器时存储库,您在 go get 过程中可能会遇到错误。其中一个错误与读取 GitHub SSH 公钥的问题有关。

问题:
运行时 go get github.com//在 Dockerfile 中,该过程失败并显示错误:“致命:无法读取“https://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://git@github.com/.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 和配置身份密钥的必要步骤。

以上是在 Docker 中克隆私有 GitHub 存储库时,如何解决'致命:无法读取'https://github.com”的用户名:没有此类设备或地址”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn