我正在嘗試使用 bitbucket 管道和 AWS Elastic Beanstalk 部署基于 gin 框架的 golang 應用程序。我創建了我的包 application.zip,其中包含在 EB 內部署應用程序所需的所有文件,當我通過管道或 AWS 控制臺中的手動菜單推送它時,我得到了這些:17:21:49 make.1 | go: finding github.com/appleboy/gin-jwt v2.5.0+incompatible 17:21:49 make.1 | go: downloading github.com/appleboy/gin-jwt v2.5.0+incompatible 17:21:49 make.1 | go: extracting github.com/appleboy/gin-jwt v2.5.0+incompatible 17:21:50 make.1 | go: finding gopkg.in/dgrijalva/jwt-go.v3 v3.2.0 17:21:50 make.1 | go: downloading gopkg.in/dgrijalva/jwt-go.v3 v3.2.0 17:21:50 make.1 | go: extracting gopkg.in/dgrijalva/jwt-go.v3 v3.2.0 17:21:50 make.1 | + GOOS=linux 17:21:50 make.1 | + GOARCH=amd64 17:21:50 make.1 | + go build -o bin/application '-ldflags=-s -w' 17:21:50 make.1 | go: cannot find main module; see 'go help modules' 17:21:50 make.1 | exited with code 1 17:21:50 system | sending SIGTERM to all processes我發現我忘記了 go.mod 文件,確實添加了它,然后我收到了這些消息,一切都很好: 17:27:59 make.1 | go: extracting github.com/appleboy/gin-jwt v2.5.0+incompatible 17:27:59 make.1 | go: downloading gopkg.in/dgrijalva/jwt-go.v3 v3.2.0 17:27:59 make.1 | go: extracting gopkg.in/dgrijalva/jwt-go.v3 v3.2.0 17:27:59 make.1 | go: finding gopkg.in/dgrijalva/jwt-go.v3 v3.2.0 17:27:59 make.1 | + GOOS=linux 17:27:59 make.1 | + GOARCH=amd64 17:27:59 make.1 | + go build -o bin/application '-ldflags=-s -w' 17:27:59 make.1 | go: downloading golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c 17:28:00 make.1 | go: extracting golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c 17:28:00 make.1 | go: finding golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c 17:28:01 make.1 | exited with code 0 17:28:01 system | sending SIGTERM to all processes現在我不知道$GOPATH/go.mod 是否存在,但我不應該使用最新的 Go 版本 1.13.4,而 AWS 使用 1.13.2。
4 回答

一只萌萌小番薯
TA貢獻1795條經驗 獲得超7個贊
當GOPATH
設置時go get
,會將請求的模塊安裝到提供的路徑GOPATH
,但如果您使用.mod
文件,它將使用工作目錄。
你的情況,你已經GOPATH
設置并擁有.mod
文件。
你可以unset
像這樣使用 GOPATH:
unset GOPATH
它應該可以解決你的問題?;蛘?,您.mod
也可以刪除文件。

元芳怎么了
TA貢獻1798條經驗 獲得超7個贊
也許這可以幫助你。
看起來你有 GOPATH=。并且您正在將模塊復制到同一位置。go get 的作用是創建 ./src/golang.org/x/vgo,然后 COPY 創建 ./go.mod,這樣看起來 GOPATH 的下載源就位于模塊內部。這反過來又使它看起來像是 src/golang.org/x/vgo 是您正在處理的項目的一部分,而 vgo 對其自己(不受支持的)供應商的使用感到非常困惑。

搖曳的薔薇
TA貢獻1793條經驗 獲得超6個贊
我遇到了類似的問題,我所做的是:
go env -u GOPATH
如果您曾經像這樣設置過 GOPATH 變量,它應該可以解決您的問題 go env -w GOPATH=some_path
。
- 4 回答
- 0 關注
- 218 瀏覽
添加回答
舉報
0/150
提交
取消