herokuにgithub経由でデプロイ(Rails + Docker(ローカルのみ) + CircleCI)

使用したリポジトリ

GitHub - ysirman/deploy-rails-to-heroku: Railsアプリをherokuにデプロイする練習

herokuへのデプロイ手順

CircleCIでgithubリポジトリとプロジェクトを連携
CircleCIでherokuへのpush用に環境変数設定
デプロイの構成 - CircleCI

herokuで環境変数設定
RAILS_ENVproductionを設定
SECRET_KEY_BASEmaster.keyの中身を設定

remoteのmasterにpushすると、CIが実行され、成功すると、herokuにデプロイされる。

herokuのstackにcontainerを使用した場合のエラー(※未解決)

アプリ画面が表示されない。JSONは表示できる。 本番サーバーだとエラーが出ず、原因不明。
ローカルで同じPumaコマンドで実行すると、Puma::HttpParserErrorのエラーが発生して、httpsにアクセスできてないぽい。

stackにcontainerを利用しないデプロイだと、Resourcesタブのコマンドは

web bin/rails server -p ${PORT:-5000} -e $RAILS_ENV

になって、表示された。
heroku標準のweblickだとOKでpumaだとダメなのか、、、

puma設定がダメなのか確認のため、./Procfileを作ってpumaコマンドにしても表示された。

web: bundle exec puma -C config/puma.rb

コンテナだとheroku.ymlの設定がおかしいのか?
謎すぎる。。。

その他

containerでデプロイしないと、heroku.ymlのように複数コマンドを書くことができないぽい。
Procfile以外のコマンド、db:migrateasset precompile は手動になってしまう、、、

heroku.yml:デプロイしたコンテナで実行するコマンドを設定する。

# Dockerコンテナで環境構築する場合、↓このコマンド実行しないとheroku.ymlのコマンドが実行されない。
heroku stack:set container