尝试创建谷歌管理的虚拟机时出现超时错误



我正试图使用谷歌自定义运行时为我的node4应用程序创建一个托管vm。

我创建了以下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预览命令部署应用程序:

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.

我的部署工作正在进行中。我以前曾为另一个项目解决过同样的问题,但我手头没有代码,所以我不得不再次解决这些问题。

部署一直顺利运行到最后一步,更新模块会超时。这让我觉得这是因为应用程序在VM上启动时没有做出适当的响应,所以最后的挂钩会超时。

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

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

祝你好运。

相关内容

  • 没有找到相关文章

最新更新