Kintarou'sBlog

プログラミング学習中。学習内容のアウトプットや読書で学んだことなど随時投稿!

【デプロイ】GitリポジトリにあるRailsアプリをHerokuでデプロイする

こんにちは😊Kintarouです。

現在エンジニア転職を目指してTECH CAMPにてプログラミング学習中です👨‍🎓
夢はフリーランスエンジニアになって働く人が働きやすいシステムを作ること!
と、愛する妻と海外移住すること🗽

プログラミングや読んでいる本のことなど、ブログに書いていきます!
twitter : https://twitter.com/ryosuke_angry


今回参考にさせて頂いたサイト様🙇‍♂️
Getting Started on Heroku with Rails 6.x | Heroku Dev Center


www.heroku.com

Herokuにアプリをデプロイする

Heroku

アプリケーションの公開、運用を行うためのサーバーを提供するサービスです。
Gitのリポジトリを簡単にデプロイする事が出来ます。

※以下はHerokuのアカウント登録と支払い情報登録を済ませた後の話です。

Herokuにログインする

メールアドレスやパスワードを入力しますが、これはHerkouに登録したアカウントのものです。

% heroku login --interactive
    =>Enter your Heroku credentials.
    =>Email:    #メールアドレスを入力
    =>Password:    #パスワードを入力

rails_12factorのGemを導入する

rails_12factorは静的アセットファイルやログの保存先をHeroku用に調整してくれるGemです。

# アプリのGemfile内最下部
group :production do
  gem  'rails_12factor'
end

その後インストール

#以下、デプロイするアプリのディレクトリにて
%bundle install

変更内容はリポジトリに反映させておきましょう。

Heroku上にアプリを作る

リポジトリにあるアプリをHeroku上で作成します。この際リポジトリにあるアプリと同じアプリ名でなくても大丈夫ですが、わかりやすいものにしましょう。

% heroku create (アプリ名)

Heroku上にDBを作る

今回はMySQLを使用する設定を行います。(デフォルトはPostgreSQL

heroku addons:add cleardb

mysql2のGemを利用している場合

設定を変更しておきましょう。

#ClearDBのデータベースのURLを変数(heroku_cleardb)に格納
%heroku_cleardb=`heroku config:set CLEARDB_DATABASE_URL`

%heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}
#DATABASE_URLの頭がmysql2://となる

Heroku上で環境変数にmaster_keyを設定する

master_keyはセキュリティ上gitで管理できないため、環境変数にしましょう。

%heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

Basic認証を利用している場合はそちらも格納しましょう

%heroku config:set BASIC_AUTH_USER="******"
%heroku config:set BASIC_AUTH_PASSWORD="******"

Heroku上にコミットをプッシュする

% git push heroku master

更新したgitのリポジトリをHeroku上に反省する場合は都度このコマンドでプッシュします。

Heroku上でマイグレーションファイルを実行する

% heroku run rails db:migrate

その他主なHerokuコマンド

heroku apps:info

公開されたアプリケーションの詳細を確認する。

heroku logs

Herokuアプリケーションが稼働したログを表示する。
※--tailオプションをつける事でログの最後の10行を表示する。

%heroku logs --tail --app (アプリ名)

#アプリを指定する場合は--appをつける

以上、どなたかの参考になれば幸いです😊