我的目标是看看我是否错过了将一个小型Sinatra应用程序部署到Heroku并诊断出现端口错误的原因。Heroku上的Sinatra应用程序的不良绑定
我正在向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时只有一个错误。唯一的错误似乎是关于一个端口。我无法找到的很多信息可以帮助我弄清楚如何诊断我所看到的。我觉得我可能会在这个端口问题上漏掉一些明显的东西,但我不知道那是什么。
任何帮助,将不胜感激。
我不知道是否适合给我这样的问题添加评论,但我确实注意到了一些问题。在回到Heroku中的日志中,似乎端口总是尝试使用3000.我在整个应用程序中搜索,并且没有任何地方可以指定该数字。 –