herokuにgithub経由でデプロイ(Rails + Docker(ローカルのみ) + CircleCI)
使用したリポジトリ
GitHub - ysirman/deploy-rails-to-heroku: Railsアプリをherokuにデプロイする練習
herokuへのデプロイ手順
CircleCIでgithubのリポジトリとプロジェクトを連携
CircleCIでherokuへのpush用に環境変数設定
デプロイの構成 - CircleCI
herokuで環境変数設定
RAILS_ENV
:production
を設定
SECRET_KEY_BASE
:master.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:migrate
や asset precompile
は手動になってしまう、、、
heroku.yml
:デプロイしたコンテナで実行するコマンドを設定する。
# Dockerコンテナで環境構築する場合、↓このコマンド実行しないとheroku.ymlのコマンドが実行されない。 heroku stack:set container