【问题标题】:Deploying SailsJS to Heroku将 SailsJS 部署到 Heroku
【发布时间】:2014-08-02 17:20:54
【问题描述】:

我无法启动我的应用程序,它一直失败并出现以下错误:

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

我在config文件夹中创建了application.js文件,内容如下:

module.exports = {
  port: process.env.PORT || 1337
};

但这并没有帮助。

我的应用程序的结构如下。 我在 Heroku 上有两个单独的应用程序。它们都有完全相同的代码,除了不同的 Procfile(这样我就可以启动不同的脚本)。 第一个应用程序是我的实际应用程序,第二个应用程序是应该填充数据库的工作人员。 第一个Procfile有以下内容:

web: NODE_ENV=production node app.js

还有第二个(工人):

web: NODE_ENV=production node worker/APIDataLoader.js

工作应用程序是失败的应用程序。

会不会是其他地方出了问题,而这个错误实际上“掩盖”了它?

更新

我将我的第二个 Procfile 更改为:

worker: NODE_ENV=production node worker/APIDataLoader.js

所以现在它是工人。我还为此应用程序运行heroku ps:scale worker=1。 这就是我现在得到的:

State changed from up to starting
2014-06-12T14:42:53.556701+00:00 heroku[worker.1]: Starting process with command `NODE_ENV=production node worker/APIDataLoader.js`
2014-06-12T14:42:54.407140+00:00 heroku[worker.1]: State changed from starting to up
2014-06-12T14:42:52.111153+00:00 heroku[worker.1]: Stopping all processes with SIGTERM
2014-06-12T14:42:54.518997+00:00 heroku[worker.1]: Process exited with status 143
2014-06-12T14:51:54.297431+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=/ host=surge-gearstream-worker.herokuapp.com request_id=073599af-192b-4b23-aef1-be7a264c43d2 fwd="188.2.72.207" dyno= connect= service= status=503 bytes=
2014-06-12T14:51:54.508784+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path=/favicon.ico host=surge-gearstream-worker.herokuapp.com request_id=adbb0bfa-2df7-47ad-9a27-4f6823db6ecf fwd="188.2.72.207" dyno= connect= service= status=503 bytes=

是否可以只运行worker?

【问题讨论】:

    标签: node.js heroku sails.js


    【解决方案1】:

    这里有几个问题,以及您应该遵守的规则/最佳实践:

    1. 不要将 web/worker 分成单独的应用程序,将它们放在同一个应用程序中,在同一个 Procfile 中:

      web: node app.js
      worker: node worker/APIDataLoader.js
      
    2. NODE_ENV 环境变量属于heroku config,不能在Procfile 中传递
    3. 您的工作人员似乎只是无所事事地退出了,是不是某些错误被抑制了?
    4. Procfile 中不需要web 进程,请确保您没有尝试将web 扩展到超过0

    【讨论】:

    • 嘿 YuvalAdam,感谢您的回复。我按照你的建议做了。部署一个应用程序,并更改 Procfile,设置 NODE_ENV。我不确定您所说的 4. 声明是什么意思?当我登录 Heroku 时,我看到了 dropsha.re/#FNI4of8。但是,在 Heroku 日志中,我仍然收到相同的错误,“没有运行 Web 进程”。
    猜你喜欢
    • 2015-09-26
    • 2013-03-25
    • 1970-01-01
    • 2011-12-18
    • 2020-07-28
    • 2012-08-10
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多