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

无法部署使用外部库的运行时 1.12 的 AppEngine Go 应用程序

无法部署使用外部库的运行时 1.12 的 AppEngine Go 应用程序

Go
慕盖茨4494581 2023-07-26 17:15:02
我正在尝试将用 Go 编写的旧 Google App Engine(标准环境)项目迁移到运行时 1.12。自 2017 年底以来我就没有碰过它,从那以后似乎发生了很多变化。我已经能够解决一些问题,但由于我有一些外部依赖项,所以我无法部署代码。尝试部署时控制台输出的相关部分d:\src\go\src\data-axe>go env GOPATHd:\src\god:\src\go\src\data-axe>gcloud app deploy --no-promote...Error type: BuildError.Error message: 2019/09/27 19:10:09 Your app is not on your GOPATH, this build may fail.2019/09/27 19:10:10 Building from Go source in /tmp/staging/srv, with main package at ./...2019/09/27 19:10:10 Building /tmp/staging/srv, saving to /tmp/staging/usr/local/bin/start2019/09/27 19:10:11 Wrote build output to /builder/outputs/output2019/09/27 19:10:11 Failed to build app: Your app is not on your GOPATH, please move it there and try again.... err=exit status 1, out=srv/main.go:6:2: cannot find package "github.com/microcosm-cc/bluemonday" in any of:...正如上面的代码片段所示,我的 GOPATH 设置为d:\src\go,我的应用程序位于d:\src\go\src\data-axe,并且我正在使用的 Bluemonday 位于 ,d:\src\go\src\github.com\microcosm-cc\bluemonday所以据我所知,所有这些都在我的 GOPATH 中。用于指定依赖项的App Engine 文档说如果您的应用程序位于 GOPATH 上的目录中,App Engine 会分析、复制并上传来自 GOPATH 的导入。此方法支持供应商目录。这里一定有什么我不明白的地方。我的代码和我在 GOPATH 中使用的库都有,但当我尝试部署时,App Engine 似乎没有拾取并上传我的导入。我的 main.go 中的导入使用绝对路径,正如文档所述:package mainimport (    "fmt"    "net/http"    "github.com/microcosm-cc/bluemonday"    "strings"    "log"    "os")我究竟做错了什么?
查看完整描述

1 回答

?
慕姐4208626

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

我设法用两种不同的方式解决这个问题。

第一个是将我的项目复制到 $GOPATH 之外,并启用 go 模块,当我这样做时,我能够成功部署我的应用程序,包括它的所有依赖项。

我也成功地在没有 go 模块的情况下解决了问题。事实证明,很久没有碰过的不仅仅是我的项目。我的 Google Cloud SDK 也严重过时了。更新后,gcloud components update我能够正常部署我的应用程序,没有任何问题。


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

添加回答

举报

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