0

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

どんな助けでも大歓迎です。

4

1 に答える 1

0

私はこれに対してある種の答えを得ました。基本的には、Heroku にデプロイするときに「ときどき」この「ポートの競合」の問題が発生する可能性があり、Heroku からアプリを削除し、アプリを再作成する以外にできることはほとんどありません。再展開します。

いくつかのコンテキストを提供するために、上記の問題では、何も機能しませんでした。そこで、nuclear オプションを試してみました。静的な HTML ファイルと単純なルートを除いて、ほぼすべてのファイルを削除しました。それだけで再デプロイしても、私のアプリにはまだポートの競合があります。

そこで、Heroku アプリを削除して再作成し、完全版を再プッシュしました。確かに、すべてが機能しました。答えはあまりないと思いますが、証拠に反論することはできません。

于 2013-01-06T10:32:46.883 に答える