无法在openshift上运行特定版本的节点

时间:2013-06-13 17:16:25

标签: node.js openshift

我正在遵循this存储库中描述的步骤,但我似乎无法使其工作。当我查看我的env文件时,nodejs版本仍为.6.20

我的节点js版本文件是默认版本,因此节点版本.8.9应该正在运行。知道为什么会这样吗?

我的标记文件:

0.8.9

尝试启动应用程序时调试输出

==> nodejs/logs/node.log <==

npm ERR! node -v v0.6.20
npm ERR! npm -v 1.1.37
npm ERR! code ELIFECYCLE
npm ERR! message application-name@0.0.1 start: `node server.js`
npm ERR! message `sh "-c" "node server.js"` failed with 1
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     /var/lib/openshift/51ba8386e0b8cd2873000002/app-root/runtime/repo/npm-        debug.log
npm ERR! not ok code undefined
npm ERR! not ok code 1

只是为了完整起见。我的package.json文件

{

"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node server.js"
 },

"dependencies": {

    "express": "3.2.5",
    "mustache": "*",
    "request" : "*",
"buildify":"*",
"cheerio" : "*",
"slugs" : "*",
"to-markdown":"*",
"consolidate":"*"
  }
}

app本地运行就好了。

4 个答案:

答案 0 :(得分:6)

我更喜欢这个版本的nodejs入门代码:https://github.com/ryanj/nodejs-custom-version-openshift

它包含nodejs的.openshift应用程序构建挂钩的更新版本。它将读取Marker文件,但也支持直接从package.json文件的engines属性中读取以编译Nodejs运行时。

"engines": {
  "node": ">= 0.10.0",
  "npm": ">= 1.0.0"
},

我希望将get this merged in作为OpenShift上所有nodejs应用的默认.openshift文件夹内容。

您还需要确保绑定到 环境变量:OPENSHIFT_NODEJS_IPOPENSHIFT_NODEJS_PORT。这些最近被重命名。

我通常会在我的应用程序代码中添加类似的东西,允许它在任何地方运行:

var ip_addr = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
var port = process.env.OPENSHIFT_NODEJS_PORT || '8080';

OpenShift目前显示npm start的输出,可能无法显示所有应用程序的输出。有关其他调试信息,您可以尝试手动启动应用程序:

  1. 首先,从命令行停止您的应用:rhc app stop APP_NAME
  2. 然后,连接到您的应用程序齿轮/容器rhc ssh APP_NAME
  3. cd $OPENSHIFT_REPO_DIR
  4. 并手动运行package.json文件的scripts.start属性中定义的任何命令。
  5. 希望这能让您更清楚地了解正在发生的事情。

答案 1 :(得分:1)

答案 2 :(得分:1)

你的“git push”输出中有没有看到这样的东西?

remote:   - Checking to see if Node.js version 0.8.9 is installed ... 
remote:   - Downloading and extracting http://nodejs.org/dist/v0.8.9/node-v0.8.9-linux-x64.tar.gz ... 
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote: 100 4578k  100 4578k    0     0  31.4M      0 --:--:-- --:--:-- --:--:-- 33.8M

并且在底部的底部,类似于:

remote:   - Using Node.js version 0.8.9, checking app URI ... 
remote:   - test URI = http://mynode-sannam.rhcloud.com/env
remote:   - Version from test URI = 
remote: 
remote:   - Checking to see if Node.js version 0.8.9 is installed ... 

我尝试了相同的说明,似乎有效。在这里查看我的环境:http://mynode-sannam.rhcloud.com/env

请再次重做您的步骤。

答案 3 :(得分:1)

我遇到了同样的问题,一开始我无法使用https://github.com/ryanj/nodejs-custom-version-openshift的源代码解决它,但是读取推送输出时我注意到了一些权限问题。 因此,对于遇到相同问题的其他人,请进入:

cd .openshift\action_hooks

并运行此命令:

git update-index --chmod=+x *

它授予运行升级节点版本

的命令的权限