當嘗試使用本機套件建置Docker 映像時,使用者可能會遇到錯誤「匯入路徑不以主機名稱開頭。
對於簡單的 Dockerfile,使用者通常會建立一個類似於以下內容的檔案:
FROM golang:onbuild EXPOSE 8080
此格式遵循「使用 Docker 部署 Go 伺服器」一文中概述了方法。將「git-go-websitesculpture」中的程式碼集成為建置來源時,可能會出現以下錯誤:
import "git-go-websiteskeleton/app/common": import path does not begin with hostname package git-go-websiteskeleton/app/common: unrecognized import path "git-go-websiteskeleton/app/common" import "git-go-websiteskeleton/app/home": import path does not begin with hostname package git-go-websiteskeleton/app/home: unrecognized import path "git-go-websiteskeleton/app/home" import "git-go-websiteskeleton/app/user": import path does not begin with hostname package git-go-websiteskeleton/app/user: unrecognized import path "git-go-websiteskeleton/app/user"
根本原因是應用程式建置發生在Docker 容器內,要求依賴項可存取
要修正此錯誤,請超越「golang:onbuild」的基本語法。編寫自訂 Dockerfile,其中包含建置應用程式的詳細步驟。根據專案的具體情況調整內容,可能使用以下結構:
FROM golang:1.6 ADD . /go/src/yourapplication RUN go get github.com/jadekler/git-go-websiteskeleton RUN go install yourapplication ENTRYPOINT /go/bin/yourapplication EXPOSE 8080
這會修改 Dockerfile 以將原始程式碼和依賴項合併到容器中。隨後,它會建立您的應用程序,啟動其執行,並指定連接埠 8080 用於外部存取。
以上是為什麼在建置 Docker 映像時收到「導入路徑不以主機名稱開頭」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!