首頁 >後端開發 >Golang >為什麼 My Go Docker Web 應用程式失敗並出現「沒有這樣的檔案或目錄」錯誤?

為什麼 My Go Docker Web 應用程式失敗並出現「沒有這樣的檔案或目錄」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-12-16 21:43:14180瀏覽

Why Does My Go Docker Web App Fail with a

使用Go Basic Web 應用程式執行Docker:「沒有這樣的檔案或目錄」錯誤

嘗試在Go 中執行基本Web 應用程式時使用Docker 時,使用者可能會遇到以下錯誤:

standard_init_linux.go:190: exec user process caused "no such file or directory"

出現此錯誤是因為Web 應用程式的二進位執行檔缺少所需的程式庫或解釋器。在這種特定情況下,它缺少 libc 庫,該庫在導入 net 包時預設動態連結到二進位。

要解決此問題,可以採取以下步驟:

  1. 使用交叉編譯來編譯二進位檔案標誌:

    CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -a -tags netgo -ldflags '-w' -o mybin *.go

    這些標誌會停用交叉編譯,指定目標作業系統和體系結構,並從二進位檔案中刪除偵錯資訊。

  2. 使用Docker 鏡像中編譯好的二進製文件:

    替換其中的CMD 指令Dockerfile 包含以下內容:

    CMD ["mybin"]

執行以下步驟,使用者可以正確編譯Go Web 應用程式二進位文件,連結必要的函式庫,並消除「沒有這樣的檔案或目錄」 " 在 Docker 容器中執行應用程式時出錯。

以上是為什麼 My Go Docker Web 應用程式失敗並出現「沒有這樣的檔案或目錄」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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