OpenShift:节点应用程序"无法执行控制启动"

Sch*_*eda 10 linux node.js openshift

我事先意识到这是一个模糊的问题,但我很难过我还能在这里尝试什么......

我一直在经历其他SO问题并遵循他们的建议但到目前为止还没有解决我的问题.

这是我得到的具体错误.

Stopping NodeJS cartridge
Fri Jul 10 2015 10:36:28 GMT-0400 (EDT): Stopping application 'appname' ...
Fri Jul 10 2015 10:36:29 GMT-0400 (EDT): Stopped Node application 'appname'

Starting NodeJS cartridge
Fri Jul 10 2015 10:36:30 GMT-0400 (EDT): Starting application 'appname' ...

Waiting for application port (8080) become available ...

Application 'appname' failed to start (port 8080 not available)

Failed to execute: 'control restart' for /var/lib/openshift/MYID/nodejs
Run Code Online (Sandbox Code Playgroud)

我的package.json文件是最新的所有我的依赖项,有scripts: { start: 'node server.js' }属性,但我仍然收到此错误.

如果我SSH并进入我的current/repo目录并运行node server.js它工作正常.但是,我不能只使用screen它在后台永远运行它.

我也试过停止和重启,git推送,并通过浏览器重新启动.我很难过我还能尝试在OpenShift上运行我的(非常简单的)节点应用程序.

任何建议都非常感谢.

Mar*_*k B 13

对于OpenShift节点应用程序,您需要将启动脚本指定为:main: "server.js"而不是使用scripts.这是由于使用node-supervisor在OpenShift上启动Node应用程序的方式.

  • 好吧,多亏了你的评论,我看了一下我的`package.json`而不是在`main`下的文件名中的一段时间我有一个逗号.*facepalm*谢谢! (4认同)

dev*_*ant 12

OpenShift Node应用程序要求您提供配置以在mainscripts.start下的package.json中启动您的应用程序:

"scripts": {
     "start": "node server.js"
  },
"main": "server.js"
Run Code Online (Sandbox Code Playgroud)

此外,它还需要通过环境变量为您的节点环境提供IPPORT:

for PORT Number       process.env.OPENSHIFT_NODEJS_PORT
for IP                process.env.OPENSHIFT_NODEJS_IP
Run Code Online (Sandbox Code Playgroud)

如果这些变量未在app中使用,则会显示如下错误:

Waiting for application port (8080) become available ...
Application 'appname' failed to start (port 8080 not available)
Run Code Online (Sandbox Code Playgroud)

下面是一个示例,说明如何在节点应用程序中使用这些环境变量(来自源代码):

var server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080
var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'

server.listen(server_port, server_ip_address, function () {
console.log( "Listening on " + server_ip_address + ", server_port " + port )
});
Run Code Online (Sandbox Code Playgroud)

资料来源:https://blog.openshift.com/run-your-nodejs-projects-on-openshift-in-two-simple-steps/

相关文章:应用程序'appname'无法在开放班次节点应用程序上启动(端口8080不可用)