2 回答

TA貢獻1886條經(jīng)驗 獲得超2個贊
你的docker-compose.yml
文件說:
volumes: - /home/deploy/apps/myapp:/go/src/example.com/myapp
這意味著您的主機系統(tǒng)的源目錄已掛載并隱藏了 Dockerfile 構(gòu)建的所有內(nèi)容。 ./myapp
是主機的可執(zhí)行文件副本myapp
,如果有什么不同(也許您有 MacOS 或 Windows 主機)將導致此錯誤。
對于解釋型語言,這是一種流行的設(shè)置,開發(fā)人員希望在不運行正常的測試-構(gòu)建-部署序列的情況下運行他們的應(yīng)用程序,但對于像 Go 這樣您別無選擇的編譯型語言來說,它實際上沒有意義。我會完全刪除這個塊。

TA貢獻1963條經(jīng)驗 獲得超6個贊
Go 容器因此停止運行:
WORKDIR $GOPATH/src/example.com/myapp
RUN go build
#EXPOSE 80
#ENTRYPOINT $GOPATH/src/example.com/myapp/myapp
ENTRYPOINT ./myapp
您正在將目錄切換到構(gòu)建應(yīng)用程序的$GOPATH/src/example.com/myapp ,但是,您的入口點指向了錯誤的位置。
要解決此問題,您可以將應(yīng)用程序復制到根目錄并保留相同的ENTRYPOINT命令,或者將應(yīng)用程序復制到其他位置并傳遞完整路徑,例如:
ENTRYPOINT /my/go/app/location
- 2 回答
- 0 關(guān)注
- 219 瀏覽
添加回答
舉報