在Heroku上运行Bitgo的Express服务 - 错误R10(启动超时) - > Web进程无法在60秒内绑定到$ PORT

时间:2016-06-16 10:23:27

标签: node.js heroku

这是我第一次这样做。任何指向正确方向的指针或提示都会有很大帮助。

我正在尝试在Heroku上运行此Bitgo's service。我按照Heroku的教程推了推应用程序。

此应用不是网络应用。这是一项接收请求的服务。我想知道如何运行它来接收Heroku上的这个请求。

我创建了一个“Procfile”,并在其中写了以下一行:

web: ./bin/bitgo-express

然后当我检查日志时(根本没有做或尝试任何事情)我得到以下错误和日志:

2016-06-16T08:22:35.353721+00:00 heroku[web.1]: State changed from crashed to starting
2016-06-16T08:22:37.366281+00:00 heroku[web.1]: Starting process with command `./bin/bitgo-express`
2016-06-16T08:22:40.433443+00:00 app[web.1]: BitGo-Express running
2016-06-16T08:22:40.434385+00:00 app[web.1]: Environment: test
2016-06-16T08:22:40.434540+00:00 app[web.1]: Base URI: http://localhost:3080
2016-06-16T08:23:37.991458+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2016-06-16T08:23:37.991458+00:00 heroku[web.1]: Stopping process with SIGKILL
2016-06-16T08:23:38.795553+00:00 heroku[web.1]: Process exited with status 137
2016-06-16T08:23:38.810670+00:00 heroku[web.1]: State changed from starting to crashed
2016-06-16T08:23:41.439218+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=example.com request_id=a42a1654-2593-499c-81fa-a585464b2805 fwd="109.110.240.32" dyno= connect= service= status=503 bytes=
2016-06-16T08:23:42.964194+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=example.com request_id=008620c3-b40f-43c1-add3-e3f8b785d5c5 fwd="109.110.240.32" dyno= connect= service= status=503 bytes=

一张纸条。当我在本地运行此服务时,它会打开一个重定向到bitgo网站的网站,但我也可以执行命令并使用该服务。

我用Google搜索了错误并尝试了这个solution,它建议更改侦听端口,但我仍然得到相同的行为。为了澄清bitgo app,我将所有3080个端口更改为Heroku使用的5000个。

然后我尝试了这个solution,它建议将“web”进程更改为“worker”,但是由于服务没有被构造为工作进程的原因,我得到了它们似乎生成的错误(也许,这就是我的想法)但网络流程。

最后,我将procfile的文本更改为web: ./bin/bitgo-express -p 3080,因此它在3080端口运行,但我仍然得到相同的错误

编辑: 我的proc文件中有web: ./bin/bitgo-express -p 5000 -b 0.0.0.0

同样,结果相同。这是日志:

2016-06-20T06:17:36.753762+00:00 heroku[web.1]: Starting process with command `./bin/bitgo-express -p 5000 -b 0.0.0.0`
2016-06-20T06:17:39.333304+00:00 app[web.1]: BitGo-Express running
2016-06-20T06:17:39.334368+00:00 app[web.1]: Environment: test
2016-06-20T06:17:39.334384+00:00 app[web.1]: Base URI: http://0.0.0.0:5000
2016-06-20T06:18:36.768622+00:00 heroku[web.1]: Stopping process with SIGKILL
2016-06-20T06:18:36.768550+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

2 个答案:

答案 0 :(得分:0)

确保在个人资料中指定-b--bind0.0.0.0。否则,它将尝试绑定到localhost,而无法从Heroku的路由层到达。

答案 1 :(得分:0)

您应该在$PORT上使用Heroku提供的Procfile环境变量,即rails应用程序:web: bin/rails server -p $PORT -e $RAILS_ENV

对于BitGo,您可以进行如下配置: web: ./bin/bitgo-express -p $PORT -b 0.0.0.0