1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails] Herokuデプロイの流れ

Last updated at Posted at 2020-10-12

備忘録

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から進めてみて下さい!

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?