Heroku上Sinatra App的Bad Bind

时间:2013-01-04 13:00:02

标签: heroku sinatra

我的目标是看看我是否遗漏了一些关于将一个小型Sinatra应用程序部署到Heroku以及诊断出现端口错误的原因。

我正在向Heroku部署一个相当简单的应用程序。应用程序代码在这里:

https://github.com/jnyman/symbiont-app

应用程序本身是:

http://symbiont-app.herokuapp.com/

这是一个非常简单的测试应用程序。但是,当我部署到Heroku时,我收到应用程序错误。日志中报告的错误是:

    Error R11 (Bad bind) -> Process bound to port 3000, should be 49668 (see environment variable PORT)
    heroku[web.1]: Process exited with status 137
    heroku[web.1]: State changed from starting to crashed

这就是我在Procfile中的内容:

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

我对所调查的内容的理解是,没有“-p $ PORT”是我看到的错误的最可能原因。但我显然已经有了这条线。此外,当我运行时,一切都在本地环境中正常工作:

    bundle exec rackup config.ru

我可以毫无问题地测试我的应用程序。我使用时同样适用:

    foreman start

同样,应用程序工作得很好。我使用标准命令部署到heroku:

    git push heroku master

在此过程中没有错误。更新的最后部分是:

    -----> Discovering process types
       Procfile declares types     -> web
       Default types for Ruby/Rack -> console, rake
    -----> Compiled slug size: 15.7MB
    -----> Launching... done, v12
       http://symbiont-app.herokuapp.com deployed to Heroku

所以在当地工作;只部署到Heroku时出错。唯一的错误似乎是关于一个端口。我找不到的是很多信息,可以帮助我弄清楚如何诊断我所看到的。我觉得我可能会遗漏这个端口问题,但我不知道那是什么。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我确实得到了各种答案。基本上它归结为“有时”在部署到Heroku时,你可以遇到这个“端口冲突”问题而且除了从Heroku中删除你的应用程序,重新创建应用程序之外,你几乎无能为力。重新部署。

为了给出一些背景信息,上面的问题,我什么都得不了。所以我尝试了核选项 - 除了静态HTML文件和简单路由之外,我几乎摆脱了所有文件。即使在重新部署时,我的应用程序仍然会发生端口冲突。

所以我删除了我的Heroku应用程序,重新创建它然后重新打开我的完整版本:果然,一切正常。我想的答案并不多,但我无法与证据争论。