ここでの私の目標は、小さな 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 へのデプロイ時にのみエラーが発生します。唯一のエラーはポートに関するものと思われます。私が見つけられないのは、私が見ているものを診断する方法を理解するのに役立つ多くの情報です. このポートの問題で明らかな何かが欠けているように感じますが、それが何であるかはわかりません。
どんな助けでも大歓迎です。