備忘録
Herokuを使ったデプロイよく忘れてしまうので記録用
初学者のため間違っていたらご指摘お願いします。
尚本環境ではRails、MySQLを使っています。
プログラミング初心者の方に役立てばと思います!
手順1 Heroku CLIをインストール
こちら最初のデプロイのみです。
2回目以降の方は手順2からご覧下さい
ターミナル
使用するディレクトリ内で以下のコマンドを入力
% brew tap heroku/brew && brew install heroku
このコマンドでherokuコマンドが使用できるようになり、ターミナルからHerokuにログインできるようになります。
手順2 Herokuにログインしましょう
ターミナルで以下を入力
% heroku login --interactive
=> Enter your Heroku credentials.
# メールアドレスを入力し、エンターキーを押す
=> Email:
# パスワードを入力して、エンターキーを押す
=> Password:
これでHerokuにログインできました!
手順3 rails_12factorを導入
Railsアプリケーションを本番環境などのサーバ上で動かすためのアセットがまとまったGem
# Gemfileに追加
group :production do
gem 'rails_12factor'
end
gemインストール
% bundle install
編集したのでコミット
% git add .
% git commit -m "gem rails_12factorの追加"
デプロイはリモートリポジトリ上のデータを使うので変更の都度コミットしてプッシュを行うことを忘れないで下さい。
手順4 Herokuにアプリを作成
heroku createコマンドでheroku上にアプリを作成します。
heroku create 作成したいアプリ名
ターミナルにて入力
例
% heroku create heroku-test01
手順5 HerokuでMySQLを使えるようにする
ClearDBアドオンを追加する事でHeroku内でMySQLを使用できるようになります。
ターミナルで以下コマンドを実行
heroku addons:add cleardb
ターミナルで以下入力
# ClearDBデータベースのURLを変数heroku_cleardb
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`
# データベースのURLを再設定
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
ここまででMySQLを使えるようになりました。
手順4に進む前にcredentials.yml.encファイルとmaster.keyファイルについて軽く説明します。
credentials.yml.encファイルはrailsで外部に漏らしたくない情報を扱うファイルのこと。
master.keyファイルファイルはcredentials.yml.encの暗号文を複号するためのファイルのことです。
master.keyは重要なファイルのためデフォルトでGitで扱われないようになっています。
手順5.5 credentials.yml.encをmaster.keyで複号
以下コマンドでcredentials.yml.encをmaster.keyによって復号し、中身を確認できた状態です
# ターミナルで以下コマンドを実行
% EDITOR="vi" bin/rails credentials:edit
手順6 Heroku上にmaster.keyを設置
先ほども説明しましたが、master.keyはGitで扱えないため環境変数を設定する必要があります。
heroku config:set 環境変数名="値"
これにより、Heroku上で環境変数を設定でき、master.keyを使えるようになります。
ターミナルで以下入力
heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
以下コマンドで環境変数の設定を確認
% heroku config
手順7 アプリをプッシュ
git push heroku masterコマンドでheroku上のアプリにリモートリポジトリの内容をプッシュしています。
以下ターミナルで実行
% git push heroku master
ここまででHeroku上にアプリケーションを反映する事ができました!
ですがマイグレーション情報が反映されていません、、、
手順8 Herokuでマイグレーションを実行
heroku run rails db:migrateコマンドでHerokuのDB上にマイグレーション情報を反映させています。
ターミナルで以下コマンド実行
% heroku run rails db:migrate
# 以下コマンドでHeroku上にデプロイしたアプリの情報確認できます
% heroku apps:info
今後追加機能などを本番環境にデプロイする際には、コミット→プッシュ→手順7で簡単にデプロイする事ができます。
まとめ
お疲れ様です!
ここまでで一通りのデプロイ作業が終了しました!
実際の現場ではHerokuを使う事はほとんど無いと思いますが、私を含め初学者にとっては簡単にデプロイできるツールなのでデプロイの入門としてとても便利ですね!
誰かの助けになれば幸いです。
##追記
ご指摘を頂きましたので修正させて頂きます。
手順3でrails_12factorを導入していますがrails5以降は不要なようです!
一応rails_12factorを導入しても問題なく動作は確認ができていますが、rails5以降をお使いの場合は手順3
を飛ばして手順4から進めてみて下さい!