node.js - GCloud VM 实例未启动 Node 应用程序

标签 node.js gcloud gcloud-node

我尝试在本地主机以及谷歌虚拟机上运行我的 Node 应用程序。如果我登录 Google 云虚拟机的 putty\ssh,该应用程序运行正常 并启动 Node 应用程序(从/opt/app 文件夹)。我可以登录浏览器并通过 {external ip:port number} 访问该应用程序。

如果我只是重置(或停止\启动)VM,它不会启动应用程序。我提供了一个启动脚本来启动应用程序 在下面的文章中提到:

https://cloud.google.com/nodejs/getting-started/run-on-compute-engine#download_app

当虚拟机尝试运行启动脚本文件时,我可以看到以下内容。这实际上是因为缺少依赖关系吗? 因为如果 package.json 丢失,当我尝试手动运行它时,它应该会失败。

    Apr 11 21:15:02 my-app-instance startupscript: /tmp/tmp.XwUPXasPss: line 28: cd: /opt/app/7-gce: No such file or directory
    Apr 11 21:15:02 my-app-instance startupscript: npm install
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! install Couldn't read dependencies
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! Linux 3.16.0-4-amd64
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! argv "/opt/nodejs/bin/node" "/usr/bin/npm" "install"
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! node v4.2.2
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! npm  v2.14.7
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! path /package.json
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! code ENOPACKAGEJSON
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! errno -2
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! syscall open
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! package.json ENOENT: no such file or directory, open '/package.json'
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! package.json This is most likely not a problem with npm itself.
    Apr 11 21:15:03 my-app-instance startupscript: npm ERR! package.json npm can't find a package.json file in your current directory.

包.json

    {
      "name": "appname",
      "version": "1.0.0",
      "description": "An interactive forum",
      "main": "server.js",
      "private": true,
      "engines": {
        "node": ">=0.12.7",
        "npm":  "2.14.12"
      },
      "dependencies": {
        "bluebird": "^3.3.4",
        "body-parser": "^1.15.0",
        "cors": "^2.7.1",
        "express": "^4.13.4",
        "jsonfile": "^2.2.3",
        "mysql": "^2.10.2",
        "socket.io": "^1.4.5"
      },
      "devDependencies": {},
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "repository": {
        "type": "git",
        "url": "app, test, ineractive"
      },
      "keywords": [
        "app",
        "test",
        "interactive"
      ],
      "author": "Srikanth",
      "license": "MIT"
    }

有任何帮助吗?它还在“supervisor”日志中给出错误。

    2016-04-11 21:15:09,694 INFO exited: nodeapp (exit status 127; not expected)
    2016-04-11 21:15:10,695 INFO gave up: nodeapp entered FATAL state, too many start retries too quickly

最佳答案

查看日志行第28行:cd:/opt/app/7-gce:没有这样的文件或目录:在链接的说明中,它假设您的应用程序位于该目录中。但是,您的虚拟机上似乎没有它,这会导致脚本的其余部分失败。

关于node.js - GCloud VM 实例未启动 Node 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36560350/

相关文章:

javascript - 在 Sails 的 Waterline beforeUpdate Hook 中获取当前值

google-compute-engine - gcloud compute addresses list 返回 0 结果,尽管我有外部临时地址

docker - 如何显示在 Docker 容器中运行的 Python 应用程序的输出?

node.js - 使用 nodejs gcloud api 删除 Google Cloud Storage 中的文件夹

node.js - Google Cloud PubSub - 似乎无法获取主题

node.js - gcloud 模块加载缓慢

node.js - 删除node.js中的文件不起作用

Node.js Jade : Add rows to tables

go - 如何从Go Cloud功能向VM添加计费标签?

javascript - 使用 NodeJS 查找图像中是否存在 Logo