本記事の内容と目的
- 内容は、作成したアプリをHerokuにデプロイする方法と更新方法です。
- Herokuへのデプロイをスムーズにできるようにする事を目的とします。
RailsアプリをHerokuにデプロイ
- まずはデプロイするアプリのディレクトリまで移動します。
% cd ~/projects/"アプリ名"
- 次にターミナルのコマンド操作でHerokuにログインします。
% heroku login --interactive
=> Email:
# メールアドレスを入力し、エンターキーを押す
=> Password:
# パスワードを入力して、エンターキーを押す
- 次にアプリをHerokuへデプロイする為に必要なGemをインストールします。
- アプリのGemfileにの末尾に下記のように記述しましょう。
- 下記Gemはrailsのバージョンが4以前でのみ必要があったようです。
- バージョン5以降は必要ないとのことでした、、、すみません。
- 詳しくは、Herokuの公式に記載があります。
- https://devcenter.heroku.com/articles/getting-started-with-rails6
- 以前のバージョンでは、Herokuのロギングを有効にする為に下記Gemを使われていたそうですが、Rails のバージョン5以降では必要ないそうです!
group :production do
gem 'rails_12factor'
end
- 記述が終わったらターミナルでインストールを実行しましょう。
- 今回はMySQL2を使用する為、Herokuのデフォルト設定であるClearDBをアドオンしてから、MySQL2の環境を構築します。
% bundle install
% git add .
% git commit -m "gem rails_12factorの追加"
#↑Gemのインストールとそれをマスターリポジトリに反映している。
% heroku create "アプリ名"
% heroku addons:add cleardb
#↑MySQL2を構築する為、clearDBをアドオンする
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
#↑ClearDBのURLを変数に格納する、MySQL2を構築する際に必要。
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
#↑MySQL2の環境を構築する
- ここまでで、Heroku上でMySQL2の構築ができました。
- Herokuにアプリをデプロイする為に、アプリのMaster.keyをHeroku上にセットする必要があります。
※アプリのMaster.keyとは:
- 外部に漏らしたくない情報を扱うファイルであるcredential.yml.encの対になるファイルで、credential.yml.encを復号して記述内容を確認することができます。
- デプロイする本番環境でもcredential.yml.encを使用できるようにするには、Master.keyを本番環境のHeroku上で設定する必要があります。
- Heroku上にMaster.keyを設定する際は、外部に漏れないように環境変数で設定します。
それでは早速Master.keyを設定していきましょう!
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
#↑RailsのMaster.keyがconfigディレクトリ上にある為、catコマンドで読み取って、RAILS_MASTER_KEYという環境変数に格納しています。
- Master.keyを設定できたのでこれでデプロイができます。
- ターミナルの下記コマンドでデプロイしていきます。
% git push heroku master
#↑Gitで管理しているリモートリポジトリをHerokuにデプロイします。
% heroku run rails db:migrate
#↑Heroku上で構築したデータベースにマイグレーションを実行します。
- これでデプロイは完了です!お疲れ様でした!!