首頁 >後端開發 >Golang >在 Docker 中複製私有 GitHub 儲存庫時,如何解決「致命:無法讀取「https://github.com」的使用者名稱:沒有此類裝置或位址」錯誤?

在 Docker 中複製私有 GitHub 儲存庫時,如何解決「致命:無法讀取「https://github.com」的使用者名稱:沒有此類裝置或位址」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-16 13:26:03961瀏覽

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