我今天早上在Bluemix上创建了一个新的Node.js应用程序并下载了样板代码。我在当地工作,然后把它推了上去。在Bluemix上,它拒绝启动。根据日志的错误是:
Instance (index 0) failed to start accepting connections
所以我用Google搜索,在我发现结果的每一个案例中,答案是我的应用程序试图使用特定端口而不是让Bluemix设置它。
好的,但是我使用样板使用的完全代码设置主机/端口:
var appEnv = cfenv.getAppEnv();
// start server on the specified port and binding host
app.listen(appEnv.port, function() {
// print a message when the server starts listening
console.log("server starting on " + appEnv.url);
});
因此,如果这是不正确的,这意味着Bluemix告诉我下载本身的代码也是错误的,我无法想象这就是问题。
答案 0 :(得分:5)
为了确定cfenv
是否有问题,我已经使用一些更复杂的Node.js应用程序测试了这段代码,并且它们在Bluemix上完美运行。
当您部署到Bluemix的应用程序根本无法启动时,也会出现此消息。您可以采取以下措施对Bluemix上的Node.js应用程序进行故障排除。
scripts.start
package.json
或Procfile
web: node <start-script>
。.cfignore
文件。因此,当您将应用程序推送到Bluemix时,CF CLI不会推送整个node_modules文件夹(因为它们将动态安装)。接下来,清除node_modules
目录并执行npm install --production
,然后执行npm start
(或您的自定义启动命令)。这是Bluemix在尝试启动应用程序时所做的事情,因此您应该仔细检查它是否在本地运行。