首頁 >後端開發 >Golang >為什麼我的 Docker 映像找不到我的 Go 套件:「找不到套件」錯誤的解決方案

為什麼我的 Docker 映像找不到我的 Go 套件:「找不到套件」錯誤的解決方案

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-04 08:47:02414瀏覽

Why Can't My Docker Image Find My Go Package: A Solution to the

Docker 與Go 應用程式:解決「找不到套件」錯誤

使用Go 應用程式建置Docker 映像時,遇到「找不到套件」錯誤可能是令人沮喪。讓我們深入研究這個問題並提供解決方案。

當 Dockerfile 將專案檔案複製到映像根目錄而沒有安裝依賴項或正確建置二進位檔案時,就會出現此錯誤。這種不匹配會導致系統搜尋目標位置 (/go/bin/myapp) 中不存在的二進位。

要解決此問題,我們建議使用如下所示的Dockerfile 結構:

FROM golang:1.9.2
ADD . /go/src/myapp
WORKDIR /go/src/myapp
RUN go get myapp
RUN go install
ENTRYPOINT ["/go/bin/myapp"]

此Dockerfile 將:

  1. 將專案檔案複製到/go /src/myapp。
  2. 將工作目錄設定為 /go/src/myapp。
  3. 使用 go get(或您首選的依賴項管理工具)安裝依賴項。
  4. 建置並安裝二進位檔案。
  5. 將入口點設定為建置的二進位檔案。

要進一步偵錯問題,您可以使用 docker exec 執行 ls 或任何其他命令。例如:

docker exec <image name/hash> ls

此外,您可以使用以下命令在生成的圖像中進入 shell:

docker run --rm -it <image hash/name> /bin/sh

這使您可以探索圖像並更深入地了解其結構。

以上是為什麼我的 Docker 映像找不到我的 Go 套件:「找不到套件」錯誤的解決方案的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn