Herokuへデプロイ後にエラー「code=H14 desc=”No web processes running”」

Herokuへデプロイ後にエラー「code=H14 desc=”No web processes running”」

エラー内容

Docker環境のRailsアプリをHerokuにプッシュして、Herokuを開いてみたところ、うまく表示されていませんでした。ログを確認したところ以下のようなエラーが発生していました。

コード
2022-01-12T11:22:44.331526+00:00 heroku[router]: at=error code=H14 desc="No web processes running" method=GET path="/" host=shielded-plains-89486.herokuapp.com request_id=77cda585-04a7-47e7-bcdb-9ac04d4ce2cb fwd="165.76.248.90" dyno= connect= service= status=503 bytes= protocol=https

解決方法

結論から言うと、コンテナにheroku.ymlが含まれていないことが原因です。私はコンテナイメージをpushする方法でHerokuにアプリをアップしていました。

なので以下の方針で進めます。

  1. heroku.ymlを作成する
  2. $ heroku stack:set containerを実行
  3. $ git push heroku masterを実行
  4. $ heroku ps:scale web=1を実行
  5. $ heroku run rails db:migrateなどを実行(必要であれば)
  6. $ heroku openを実行

heroku.ymlの内容は以下のようにシンプルなものです。

heroku.yml
build:
  docker:
    web: Dockerfile

👇のリンクを参考にさせていただきました。

https://qiita.com/rebi/items/efd1c36f0a9e46222d80

ターミナル

以下、実際のコマンドと挙動についてですので、参考にしてみてください。

コード
$ touch heroku.yml
$ ls
Dockerfile		README.md		bin			db			heroku.yml		public			tmp
Gemfile			Rakefile		config			docker-compose.yml	lib			spec			vendor
Gemfile.lock		app			config.ru		entrypoint.sh		log			storage
$ git status  
On branch fix_heroku
Untracked files:
  (use "git add ..." to include in what will be committed)
	heroku.yml

nothing added to commit but untracked files present (use "git add" to track)
$ git add -A
$ git commit -m 'heroku.ymlの追加'
[fix_heroku 34d00aa] heroku.ymlの追加
 1 file changed, 3 insertions(+)
 create mode 100644 heroku.yml
$ heroku stack:set container
Setting stack to container... done
$ git push heroku fix_heroku:master
Enumerating objects: 197, done.
Counting objects: 100% (197/197), done.
Delta compression using up to 8 threads
Compressing objects: 100% (169/169), done.
Writing objects: 100% (197/197), 42.08 KiB | 2.34 MiB/s, done.
Total 197 (delta 50), reused 0 (delta 0), pack-reused 0
【省略】
remote: latest: digest: sha256:70e45578127488c78b416d518600e94555c123916769b118954ffcc39ea7f95a size: 3672
remote: 
remote: Verifying deploy... done.
To https://git.heroku.com/shielded-plains-89486.git
 * [new branch]      fix_heroku -> master
$ heroku ps:scale web=1
Scaling dynos... done, now running web at 1:Free
$ heroku open

Leave a Reply

Your email address will not be published.

CAPTCHA