2017-06-27 4 views
-1

私はherokuにフラスコアプリを配備しようとしています。私は、アプリケーションのビルドとデプロイのポイントに行ってきましたが、URLに移動しようとすると、アプリは次のエラーでタイムアウトします。HerkesのFlask AppのProcfileの適切なフォーマット

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 

私の問題は私のprocfileにあると思います。それは1行です。

web: gunicorn app:app 

これは単なるおもちゃのアプリですと、私はそう、私は私がgunicorn使用する必要はないと思うのパフォーマンスを気にしないでください:

web: python add_entry3.py 

他の人々はこのようになりprocfilesを持っていますウェブサーバー。私はアプリケーションのファイル名(add_entry3.py)の後にコロンとコマンドを置くべきですか?

+0

おかげI」の問題のために別の場所を調べでしょう... – Trey

答えて

1

おそらく、あなたのフラスコのアプリは、Herokuが期待しているポートとインターフェイスに応答していません。デフォルトではFlask のみが127.0.0.1を受信し、私はポート5000と考えています。HerokuはあなたのアプリケーションにPORTという環境変数を渡します。そして、Flaskにすべてのインターフェースをlistenするように伝える必要があります。

パフォーマンス以外の理由は、生産コード用のFlaskのデフォルトのデバッグサーバーを避けたいという理由があります。メモリリークがあり、セキュリティ上の意味があり、実際には...しないでください。あなたのrequirements.txtにgunicornを追加し、それを使用してください。

しかし、あなたはフラスコテスト/デバッグ・サーバを使用する必要がある場合は、このような何かにあなたのapp.run()の呼び出しを変更:

app.run(host='0.0.0.0', port=int(os.environ.get("PORT", 5000))) 
関連する問題