【问题标题】:Heroku production issues with Sinatra app (Error R10)Sinatra 应用程序的 Heroku 生产问题(错误 R10)
【发布时间】:2013-06-12 02:36:32
【问题描述】:

我按照 heroku 的说明仔细部署了 Sinatra 应用程序,但仍然出现问题。如果这有什么不同,我正在使用 sinatra-base 和 sinatra-partial。我在 gemfile 和 myapp.rb 中声明了所有的 gem

Gist of my files

这是我在heroku日志上看到的

2013-06-11T05:09:28.982664+00:00 app[web.1]:    from myapp.rb:49:in `<class:MyApp>'
2013-06-11T05:09:29.148291+00:00 app[web.1]: [2013-06-11 05:09:29] INFO  WEBrick 1.3.1
2013-06-11T05:09:29.148613+00:00 app[web.1]: == Sinatra/1.4.0 has taken the stage on 4567 for production with backup from WEBrick
2013-06-11T05:09:29.148759+00:00 app[web.1]: [2013-06-11 05:09:29] INFO  WEBrick::HTTPServer#start: pid=2 port=4567
2013-06-11T05:09:29.148291+00:00 app[web.1]: [2013-06-11 05:09:29] INFO  ruby 1.9.2 (2011-07-09) [x86_64-linux]
2013-06-11T05:10:26.570140+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2013-06-11T05:10:26.570414+00:00 heroku[web.1]: Stopping process with SIGKILL
2013-06-11T05:10:28.018692+00:00 heroku[web.1]: Process exited with status 137
2013-06-11T05:10:28.033080+00:00 heroku[web.1]: State changed from starting to crashed

在对Error R10 (Boot timeout) -&gt; Web process failed to bind to $PORT within 60 seconds of launch 错误进行了更多研究之后,这可能是因为 gem 需要很长时间才能加载。但是,我只使用这些宝石,所以我不知道它为什么会超时。在本地,启动我的应用程序大约需要 1 秒。

【问题讨论】:

  • 您的应用程序代码是否在初始化期间尝试连接到任何东西?此外,由于您已经添加了 sinatra gem,因此您可以从 Gemfile 中删除基于 sinatra 的 gem。
  • 另外,在您的 config.ru 中,如果您的应用是 Sinatra::Base 的子类,则它必须是 run MyApp
  • myapp.rb 长什么样子?
  • 这是我的文件的要点。 gist.github.com/jamesfzhang/5758966
  • @Kashyap 而不是run Sinatra::Application,应该只是run MyApp

标签: ruby heroku sinatra


【解决方案1】:

Heroku 动态分配端口。当您在 myapp.rb 的第 85-97 行调用 run! 方法时,您正在端口 4567 上启动应用程序。您应该能够删除这三行并使用 config.ru 启动您的应用程序。

如果您将heroku gem 添加到您的Gemfile,您可以删除Procfile。否则你应该通过备份来启动应用程序:

web: bundle exec rackup config.ru -p $PORT

您还可以在 Gemfile 中添加“thin”并使用这样的 Procfile

web: bundle exec thin start -R config.ru -e $RACK_ENV -p $PORT

【讨论】:

  • 谢谢,这就是修复。除了用run MyApp替换run Sinatra::Application
猜你喜欢
  • 2016-04-15
  • 2019-03-02
  • 2018-04-07
  • 2013-09-11
  • 1970-01-01
  • 2017-09-16
  • 1970-01-01
  • 1970-01-01
  • 2020-12-20
相关资源
最近更新 更多