【Heroku × Flask】No web processes runningエラーの対処
HerokuにFlaskで最低限のHello World環境を整えようとデプロイしてつまづいた時の状況と、解決した方法をメモしておきます。
HerokuでNo web processes runningエラーが出た時の状況
git push heroku masterでデプロイ自体は上手くいったのですが、アクセスするとこのエラー画面が。
heroku logsでログを確認すると、「at=error code=H14 desc="No web processes running"」のエラーが。
(venv) testapp $ heroku logs
2020-06-15T17:31:43.274005+00:00 app[api]: Release v3 created by user xxx
2020-06-15T17:31:51.000000+00:00 app[api]: Build succeeded
2020-06-15T17:32:02.980501+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=testapp.herokuapp.com request_id=6b5cb0c4-8190-458d-8176-75ca7fd671d1 fwd="111.239.163.136" dyno= connect= service= status=503 bytes= protocol=https
heroku psだと「No dynos on ...」と出ていました。
(venv) testapp $ heroku ps
Free dyno hours quota remaining this month: 548h 49m (99%)
Free dyno usage for this app: 0h 0m (0%)
For more information on dyno sleeping and how to upgrade, see:
https://devcenter.heroku.com/articles/dyno-sleeping
No dynos on ⬢ testapp
(venv) testapp $
app.py、Procfile、requirements.txtはこんな状態↓で、venv仮想環境上でpip install flask gunicornしただけです。
↑3行目にあるgunicornをインストールするのを忘れる人も多いようです(pip install gunicorn)。
解決した方法
Herokuのアプリ管理画面 > Resourcesの画面へ行くと、アプリケーションサーバ(Procfileに記載したgunicorn)が起動していない状態になっていました(赤枠部分)。
これを、以下のようにして起動状態にします。
これだけで、エラーが解消されHello Worldできるようになりました。