我正在尝试使用 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 关注
- 160 浏览
添加回答
举报
0/150
提交
取消