首頁 >後端開發 >Golang >為什麼我的 Docker 映像找不到我的 Go 套件?

為什麼我的 Docker 映像找不到我的 Go 套件?

Patricia Arquette
Patricia Arquette原創
2024-11-04 18:20:02503瀏覽

Why Can't My Docker Image Find My Go Package?

Docker 建置問題:找不到Go 套件

嘗試使用Go 應用程式建置Docker 映像,您可能會遇到錯誤「can 't load package: package myapp: Cannot find package"。

問題背景

您的 Dockerfile 指示建置程序將所有檔案複製到映像根目錄,然後建置並從 /go/bin/myapp 執行 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. 使用適當的依賴項管理工具安裝相依性。
  4. 建置並安裝 myapp 二進位。
  5. 設定入口點。

其他故障排除

如果需要,您可以在每個 ADD 指令之後使用 docker exec 驗證容器的檔案結構。 ls.

要更詳細地檢查映像,請使用 docker run --rm -it 在產生的映像中輸入 shell /bin/sh。

以上是為什麼我的 Docker 映像找不到我的 Go 套件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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