尝试创建Google托管虚拟机时出现超时错误

时间:2015-10-30 12:55:12

标签: google-app-engine google-compute-engine google-cloud-platform google-managed-vm

我正在尝试使用google自定义运行时为我的节点4应用程序创建托管虚拟机。

我创建了以下Dockerfile:

FROM node:4.2.1

ENV PORT 8080

ADD package.json package.json
RUN npm install
ADD . .

CMD [ "npm", "start" ]

与此app.yaml:

一起
# [START runtime]
runtime: custom
vm: true
api_version: 1
# [END runtime]

health_check:
  enable_health_check: false

skip_files:
 - ^(.*/)?#.*#$
 - ^(.*/)?.*~$
 - ^(.*/)?.*\.py[co]$
 - ^(.*/)?.*/RCS/.*$
 - ^(.*/)?\..*$
 - ^(.*/)?.*/node_modules/.*$
 - ^(.*/)?.*\.log$

我使用gcloud preview命令部署应用程序:

gcloud preview app deploy app.yaml --promote

看起来Docker正在构建正确但在过程结束时我收到此消息:

Copying files to Google Cloud Storage...
Synchronizing files to [gs://staging.my-project-id.appspot.com/].
Updating module [default]...\Deleted [https://www.googleapis.com/compute/v1/projects/my-project-id/zones/us-central1-f/instances/gae-builder-vm-20151030t142257].
Updating module [default]...failed.
ERROR: (gcloud.preview.app.deploy) Error Response: [4] Timed out creating VMs.

1 个答案:

答案 0 :(得分:2)

我现在正在部署我的部署。对于另一个项目,我不得不解决同样的问题,但是我手边没有代码,所以我不得不再次解决这些问题。

部署顺利进行,直到最后一步,更新模块将超时。这让我觉得这与在VM上启动并且没有正确响应的应用程序有关,因此最终的挂钩会超时。

你会在这里找到很多信息 - https://cloud.google.com/appengine/docs/managed-vms/config。我检查了以下内容:

  • logging - 确保您正在写入正确的日志文件。请参阅https://cloud.google.com/appengine/docs/managed-vms/custom-runtimes#logging
  • 确保您拥有.dockerignore文件并在app.yaml中跳过文件,这样您就不会要求进程复制不需要的node_modules或日志文件
  • 如果您没有使用它,请关闭运行状况检查,或确保为其配置了正确的express.js路由
  • 检查您的环境变量是否已设置并匹配GAE可以使用的内容。这是我的最后一步 - GAE将允许您绑定到8080上的VM端口。我必须在app.yaml中传递NODE_ENV标志,该标志告诉应用程序使用8080而不是3000.
  • 在app.yaml中提升GAE实例的资源。我指定了两个逻辑CPU并使ram 2演出。
祝你好运。