首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法在openshift上运行特定版本的节点

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

Stack Overflow用户
提问于 2013-06-14 01:16:25
回答 4查看 2.9K关注 0票数 2

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

我的节点js版本文件是默认的,所以节点版本.8.9应该在运行。你知道为什么会发生这种事吗?

我的标记文件:

代码语言:javascript
运行
复制
0.8.9

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

代码语言:javascript
运行
复制
==> 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文件

代码语言:javascript
运行
复制
{

"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在本地运行得很好。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-15 02:37:13

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

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

代码语言:javascript
运行
复制
"engines": {
  "node": ">= 0.10.0",
  "npm": ">= 1.0.0"
},

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

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

我通常会在我的应用程序代码中添加类似这样的代码,让它可以在任何地方运行:

代码语言:javascript
运行
复制
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. Then,连接到应用程序设备/容器rhc ssh APP_NAME
  3. cd $OPENSHIFT_REPO_DIR
  4. and手动运行package.json文件的scripts.start属性中定义的任何命令。

希望这能让你对正在发生的事情有更多的了解。

票数 6
EN

Stack Overflow用户

发布于 2013-06-14 04:43:37

也许这会有帮助。这里有一些细微的区别。另请参阅注释。

https://www.openshift.com/blogs/any-version-of-nodejs-you-want-in-the-cloud-openshift-does-it-paas-style

票数 1
EN

Stack Overflow用户

发布于 2013-06-14 04:58:33

你在你的"git push“输出中看到过类似的东西吗?

代码语言:javascript
运行
复制
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

在底部,就像这样:

代码语言:javascript
运行
复制
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

请再重复一次你的步骤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17093167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档