【问题标题】:Why is the gcloud sdk's deploy command looking at my home directory for files?为什么 gcloud sdk 的部署命令会在我的主目录中查找文件?
【发布时间】:2021-10-22 14:07:00
【问题描述】:

我正在尝试将 python 服务器部署到 Google App Engine。

我正在尝试使用gcloud sdk 这样做。

看来我需要使用的命令是gcloud app deploy

我收到以下错误:

me@mymachine:~/development/some-app/backend$ gcloud app deploy
ERROR: (gcloud.app.deploy) Error Response: [3] The directory [~/.config/google-chrome/Default/Cache] has too many files (greater than 1000).

我必须将~/.config 添加到我的.gcloudignore 才能解决此错误。

它为什么会看那里?

The full repo of my project is public 但我相信我已经包含了相关部分。

【问题讨论】:

  • 您可以添加--verbosity=debug 以从命令中获取更详细的日志记录。 ./backend 有什么“不寻常”的地方吗?如果您使用 vanilla hello-world 示例并尝试部署它,是否会出现同样的问题。也许更明确,gcloud app deploy app.yaml。 app.yaml 中有什么?
  • 当然,它不应该需要检查~/.config/google-chrome,除非以某种方式得到指示。然后会导致错误,因为部署中的文件数量存在上传限制。

标签: gcloud


【解决方案1】:
  1. 我查看了您链接的存储库,没有任何yaml 文件。据我所知,GAE 项目需要一个 app.yaml 文件,因为该文件告诉 GAE 您的运行时是什么,以便 GAE 知道如何部署/运行您的代码。实际上,根据gcloud app deploy documentation,如果不指定要部署的yaml文件,则默认为当前目录下的app.yaml。如果在当前目录中找不到任何内容,它将尝试构建一个。

  2. 您的 repo 还显示您有一个 Dockerfile。 GAE documentation for custom runtimes 说 ...自定义运行时允许您构建在 Dockerfile 定义的环境中运行的应用程序...在自定义运行时的 app.yaml 文件中,您将拥有以下条目 p>

   runtime: custom
   env: flex
  1. 由于您没有app.yaml 文件并且您有一个正在下载和安装Chrome 的Docker 文件,因此在我看来gcloud app deploy 试图推断您的运行时,这导致它在尝试将其推送到生产之前执行 Dockerfile 的部分或全部内容。这就是它可以查看本地计算机上的配置文件的原因,直到您明确告诉它忽略它。需要说明的是,我不是 100% 确定这一点,只是想看看我是否能得出一个合乎逻辑的结论。

我的建议是创建一个 app.yaml 文件并指定一个自定义运行时。或者只是使用带有 flex 的 python 运行时

【讨论】:

  • 这似乎完全正确,这非常有帮助,因为我不确定如果部署在 gcloud 上是否可以使用我的 Dockerfile,这令人沮丧,因为我需要 chrome 以便应用程序可以呈现网站,所以你通过指出我可以如何根据自己的喜好设置 gcloud 应用程序环境来帮助我两次!
猜你喜欢
  • 1970-01-01
  • 2016-07-08
  • 2010-10-13
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2018-08-12
  • 2021-11-21
相关资源
最近更新 更多