【问题标题】:gcloud deploy app cannot find import packages - golanggcloud deploy app 找不到导入包 - golang
【发布时间】:2018-04-08 11:49:34
【问题描述】:

我已经将我的应用程序的一个版本部署到 GAE,但现在我无法部署更新的版本。 当我尝试gcloud app deploy --version=VERSION 时,我收到一堆错误,表明远程构建找不到我的导入包:

Beginning deployment of service [default]...
Building and pushing image for service [default]
Some files were skipped. Pass `--verbosity=info` to see which ones.
You may also view the gcloud log file, found at
[/home/****/.config/gcloud/logs/2018.04.08/***.log].
Started cloud build [***].
To see logs in the Cloud Console: https://console.cloud.google.com/gcr/builds/****?project=**

------------- REMOTE BUILD OUTPUT --------------------------------------------

starting build "****"

FETCHSOURCE
Fetching storage object: gs://staging.****.appspot.com/us.gcr.io/****/appengine/default.20180408t040210:latest#****
Copying gs://staging.****.appspot.com/us.gcr.io/****/appengine/default.***:latest#***...
/ [1 files][  6.9 MiB/  6.9 MiB]                                                
Operation completed over 1 objects/6.9 MiB.                                      
BUILD
Starting Step #0
Step #0: Pulling image: gcr.io/gcp-runtimes/go1builder@sha256:****
Step #0: sha256:***: Pulling from gcp-runtimes/go1-builder
Step #0: Digest: sha256:***
Step #0: Status: Downloaded newer image for gcr.io/gcp-runtimes/go1-builder@sha256:***
Step #0: main.go:5:2: cannot find package "config" in any of:
Step #0:    /usr/local/go/src/config (from $GOROOT)
Step #0:    /workspace/_gopath/src/config (from $GOPATH)
Step #0: main.go:6:2: cannot find package "db" in any of:
Step #0:    /usr/local/go/src/db (from $GOROOT)
Step #0:    /workspace/_gopath/src/db (from $GOPATH)
...
Finished Step #0
ERROR
ERROR: build step 0 "gcr.io/gcp-runtimes/go1builder@sha256:***" failed: exit status 1
-------------------------------------------------------------------------------

ERROR: (gcloud.app.deploy) Cloud build failed. Check logs at https://console.cloud.google.com/gcr/builds/***?project=*** Failure status: UNKNOWN: Error Response: [2] Build failed; check build logs for details

我已经尝试了几个关于正确设置 GOPATH 的建议,包括以 root 身份运行命令、sudo -E 以及设置系统范围的 GOPATH,但到目前为止还没有成功。无论我是在 Cloud Shell 中部署还是在本地设置中运行命令,我都会遇到相同的错误。如果我在进入远程构建阶段之前设置了错误的 GOPATH 构建失败。我也没有从第一次部署中更改源代码结构。

我在这方面花了很多时间,感谢任何帮助或建议。 谢谢。

编辑: 这是我的 app.yaml

runtime: go
env: flex
api_version: go1

env_variables:
   APP_DATABASE_CONFIG: "{...}"
   APP_CONFIG: "{...}"

同时运行 dev_appserver.py app.yaml 我得到以下输出: dev_appserver.py app.yaml

INFO     2018-04-11 05:20:51,040 application_configuration.py:506] No version specified. Generated version id: 20180411t052051
WARNING  2018-04-11 05:20:51,040 application_configuration.py:163] The Managed VMs runtime is deprecated, please consider migrating your application to use the Flexible runtime. See https://cloud.google.com/appengine/docs/flexible/python/migrating for more details.
INFO     2018-04-11 05:20:51,040 devappserver2.py:105] Skipping SDK update check.
INFO     2018-04-11 05:20:51,102 api_server.py:265] Starting API server at: http://localhost:46211
INFO     2018-04-11 05:21:16,233 dispatcher.py:255] Starting module "default" running at: http://localhost:8080
INFO     2018-04-11 05:21:16,234 admin_server.py:152] Starting admin server at: http://localhost:8000
...

除了一开始的警告外,它通常工作正常。尽管我的 app.yaml 配置,我不知道为什么它会发出该警告,但如果它有助于我部署的第一个实例是一个标准项目(Google 演示项目),我稍后删除了该实例。

我想知道远程端的那些 GOROOT (/usr/local/go/) 和 GOPATH (/workspace/_gopath/) 是从哪里来的?这些是默认设置吗?此外,如果有帮助,错误消息中显示的那些 db 和 config 包是我的,它们位于 project-root/src 下。

app.yaml 位于 project-root/src/web 下。我的 GOPATH 设置为项目根目录。我的 GOROOT 是空的。

【问题讨论】:

  • 你能用dev_appserver.py(从你的app.yaml目录)在本地运行应用程序吗?你能发布你的 app.yaml 文件吗?
  • 感谢@TylerBui-Palsulich。请参阅我上面的编辑。除了那个警告,我没有发现 dev_appserver.py 有任何问题。

标签: google-app-engine go deployment ubuntu-16.04 gcloud


【解决方案1】:

您的 Flex app.yaml 文件不应包含

api_version: go1

您可以完全删除该行。只有 App Engine 标准版需要它。

Here 是一个示例 App Engine Flexible app.yaml 文件。请参阅the docs,了解您可以在 Flex app.yaml 文件中配置的内容。

【讨论】:

  • 非常感谢@Tyler。这行得通。我想我第一次成功部署时有这个权利,但是我可能忘记了正确提交更改。 dev_appserver.py 虽然仍然会生成该警告,但只要一切正常,这并不重要。
  • 我很高兴它有帮助!当他们解决问题时,请考虑接受答案,但没有压力。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 2021-03-26
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
相关资源
最近更新 更多