为了账号安全,请及时绑定邮箱和手机立即绑定

$GOPATH/go.mod 存在,但不应出现在 AWS Elastic Beanstalk 中

$GOPATH/go.mod 存在,但不应出现在 AWS Elastic Beanstalk 中

Go
弑天下 2023-08-07 18:48:04
我正在尝试使用 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也可以删除文件。


查看完整回答
反对 回复 2023-08-07
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

也许这可以帮助你。

看起来你有 GOPATH=。并且您正在将模块复制到同一位置。go get 的作用是创建 ./src/golang.org/x/vgo,然后 COPY 创建 ./go.mod,这样看起来 GOPATH 的下载源就位于模块内部。这反过来又使它看起来像是 src/golang.org/x/vgo 是您正在处理的项目的一部分,而 vgo 对其自己(不受支持的)供应商的使用感到非常困惑。

查看完整回答
反对 回复 2023-08-07
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您必须删除 GOPATH 目录位置中的 go.mod 文件



查看完整回答
反对 回复 2023-08-07
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

我遇到了类似的问题,我所做的是:

go env -u GOPATH

如果您曾经像这样设置过 GOPATH 变量,它应该可以解决您的问题 go env -w GOPATH=some_path


查看完整回答
反对 回复 2023-08-07
  • 4 回答
  • 0 关注
  • 160 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信