Herokuへのデプロイ方法を備忘録も兼ねて記述します。
なおこれはRails 6.0.0で作成したアプリをHeroku-18デプロイする方法になります。
まず Heroku CLIをインストール
% brew tap heroku/brew && brew install heroku
次に下記のコマンドを入力
バージョンが出れば成功
% heroku --version
heroku/7.40.0 darwin-x64 node-v12.16.2
Herokuにログイン
# Herokuへログインするためのコマンド
% heroku login --interactive
=> Enter your Heroku credentials.
# メールアドレスを入力し、エンターキーを押す
=> Email:
# パスワードを入力して、エンターキーを押す
=> Password:
緑色でメールアドレスが表示されれば成功です。
Heroku上にアプリケーションを作成
% cd ~/アプリのあるディレクトリ
% pwd
#カレントディレクトリを確認
% heroku create アプリケーション名
下記のコマンドを入力し設定が正しくできたか確認
% git config --list | grep heroku
ClearDBアドオンを追加
ClearDBアドオンとは、MySQLを使うためのツールでHerokuでMySQLを使用できるようになります
% heroku addons:add cleardb
データベースの変更をする
Ruby on Railsを使う場合は、MySQLに対応するGemについて考慮する必要があり、そちらの設定を変更する必要があるとのことです
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
# 以下、コマンドの実行結果
Setting DATABASE_URL and restarting ⬢ ○○○○○... done, v◯◯
DATABASE_URL: mysql2://000000000000:0aa0000@us-cdbr-east-02.cleardb.com/heroku_aaa00000000?reconnect=true
次にHeroku上で非公開の値(サーバーのアクセスキーやAPIキーなど)を管理するために暗号化をする必要があります。
credentials.yml.encファイルという外部に漏らしたくない情報を扱う際に用いるファイルがあり、master.keyファイルでその暗号文を復元します。
まずcredentials.yml.encの中身を確認
% EDITOR="vi" bin/rails credentials:edit
確認後は、「escキー」→「:」→「q」と入力し、「enterキー」を押して閉じる
Heroku上にmaster.keyを設置する
Heroku上で環境変数を設定
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
環境変数を確認
RAILS_MASTER_KEYという変数名で値が設定されていれば成功
% heroku config
Herokuで利用するStackを指定
Stackとは、Herokuにおけるアプリケーションの動作環境のことでStackはデプロイされたアプリケーションを読み取り正常に稼働させるために用意されています。
下記のコマンドを実行。
% heroku stack:set heroku-18 -a アプリケーション名
git push heroku masterを実行
% git push heroku master
Heroku上でマイグレーションを実行
% heroku run rails db:migrate
heroku apps:infoで公開を確認
% heroku apps:info
===○○○○○○
Addons: cleardb:ignite
Auto Cert Mgmt: false
Dynos: web: 1
Git URL: https://git.heroku.com/○○○○○○.git
Owner: sample@sample.com
Region: us
Repo Size: ○○○ KB
Slug Size: ○○○ MB
Stack: heroku-18
Web URL: https:/○○○○○○.herokuapp.com/
あとはURLヘアクスして表示されれば成功