我今天早上在Bluemix上创建了一个新的Node.js应用程序并下载了样板代码.我在当地工作,然后把它推了上去.在Bluemix上,它拒绝启动.根据日志的错误是:
Instance (index 0) failed to start accepting connections
Run Code Online (Sandbox Code Playgroud)
所以我用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);
});
Run Code Online (Sandbox Code Playgroud)
因此,如果这是不正确的,这意味着Bluemix告诉我下载本身的代码也是错误的,我无法想象这就是问题所在.
为了确定是否cfenv有问题,我已经使用一些更复杂的Node.js应用程序测试了这段代码,并且它们在Bluemix上完美运行.
当您部署到Bluemix的应用程序根本无法启动时,也会出现该消息.以下是您可以对Bluemix上的Node.js应用程序进行故障排除的一些操作.
scripts.start在package.json或在Procfile用web: node <start-script>..cfignore带有"/ node_modules" 的文件,这样当您将应用程序推送到Bluemix时,CF CLI不会推送整个node_modules文件夹(因为它们将动态安装).接下来,清除node_modules目录并执行npm install --production后跟npm start(或自定义启动命令).这是Bluemix在尝试启动应用程序时所执行的操作,因此您应该仔细检查它是否在本地运行.| 归档时间: |
|
| 查看次数: |
88 次 |
| 最近记录: |