はじめに
本記事ではローカル環境で開発したrailsアプリケーションをherokuへデプロイしていく方法いついてまとめてあります。
前提条件
・Rails 6.0.0
・herokuアカウントを所持している
・MySQLを使用
デプロイ方法
まずは、HerokuCLIをインストールしていきます。
なお、ここから以下のコマンドは自身のアプリケーションフォルダー内で行うことを推奨します。
% brew tap heroku/brew && brew install heroku
インストール完了後に確認しましょう
% heroku --version
ここからherokuにログインします。
# Herokuへログインするためのコマンド
% heroku login --interactive
=> Enter your Heroku credentials.
# メールアドレスを入力し、エンターキーを押す
=> Email:
# パスワードを入力して、エンターキーを押す
=> Password:
さて、下準備はOKです。
ここから、実際にデプロイ手順を見ていきます。
まずは,heroku上でのアプリケーション名を作成します。ここでは、soccer_appにします。
% heroku create soccer_app
さて、一応確認のため、以下のコマンドを打ちましょう
% git config --list | grep heroku
fatal: not in a git directoryが出ていなければOK!!
さて、ここからデータベースの設定です。
今回は開発環境と同様にMySQLを使用するための設定を行います。ClearDBアドオンを追加することによって設定できます。
% heroku addons:add cleardb
ClearDBアドオン(参考)
ClearDBというデータベースサービスが提供しているアドオンで、これを追加することにより、HerokuでMySQLを使用できるようになります。
これでOK!!!と見せかけて、まだ設定は完璧ではありません。Ruby on Railsを使う場合は、MySQLに対応するGemについて考慮する必要があります。以下のコマンドでClearDBデータベースのURLを変数heroku_cleardbに格納します。
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
上記を踏まえ、今一度データベースのURLを再設定します。
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
ゴールまで後少しです。
以下のコマンドで、credentials.yml.encをmaster.keyによって復号し、中身を確認します。
EDITOR="vi" bin/rails credentials:edit
master.keyファイル
credentials.yml.encの暗号文を復号する、鍵の役割を持ったファイルです。特定のcredentials.yml.encと対になっている。
credentials.yml.encファイル
Railsにて、外部に漏らしたくない情報を扱う際に用いるファイル
次に、heroku上に環境変数としてmaster.keyの値を設置します。
(今は先ほど確認したようにローカルにある)
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
確認したい場合は以下のコマンドで確認
% heroku config
次にStackの準備です
Stackとは、Herokuにおけるアプリケーションの動作環境のことです。Stackはデプロイされたアプリケーションを読み取り正常に稼働させるために用意されています。
heroku stack:set heroku-18 -a soccer_app
いよいよラストスパート
Herokuへアプリケーションの情報を追加しましょう。
% git push heroku master
また、DBにもマイグレーションの情報を反映します
% heroku run rails db:migrate
これで完了です!!!!!!
あとは、URLを打ち込んで見てみましょう、、、
ってわからねえ!!
そんなときは、以下のコマンドで確認してみましょう!!
% heroku apps:info
おわりに
いかがでしたか
ノーエラーでというのはなかなか大変かもしれませんが、頑張ってみてください!!!