デプロイする方法


デプロイの方法を自分の備忘録として残しておきます。

GitHubにご自身のアプリがmasterにマージされた状態と言う前提条件で進めます。

まずHerokuと言うサービスを使います
Herokuの新規登録ページ
https://signup.heroku.com/login

ここで必要な項目を入力したらメールが届くのでそこに入って以下の入力をしましょう!
※パスワードは英数・数字・記号の3つを含み8文字以上を入力しましょう。

なんかこんなやつがでてきたら登録完了⬇︎

下のような画面が出てきたら画面下の「Accept」をクリックしてください⬇︎

Herokuのトップ画面に行けたらおk⬇︎

Herokuの注意点

Herokuは基本的に無料で利用が可能ですが、使用するデータベースの設定がデフォルトでPostgreSQLというRDBMSになっています。

HerokuでMySQLを使用する為にはクレジットカードの登録が必須となっているので、アカウント管理ページのBillingからカード情報を登録しましょう。

クレカの登録

私はMySQLを使いたのでクレカを登録します(別にしない人は飛ばしてください)

以下のスクショの手順で進めましょう

クレジットカードの情報を入力

以下のような画面になれば登録完了!

Heroku CLIのインストール

インストールする前にHerokuにアップしたいディレクトリに移動してください。
今回はprojectディレクトリをアップする手順で説明します

ターミナル
%  brew tap heroku/brew && brew install heroku

Herokuのバージョン確認コマンド↓

% heroku --version

heroku/7.40.0 darwin-x64 node-v12.16.2 # こんなやつが出てきたらおk
# Herokuへログインするためのコマンド
% heroku login --interactive
  => Enter your Heroku credentials.
# メールアドレスを入力し、エンターキーを押す
  => Email:
# パスワードを入力して、エンターキーを押す
  => Password:

Heroku createコマンド

% heroku create アプリ名

ちゃんとできたか確認のコマンド⬇︎

% git config --list | grep heroku

fatal: not in a git directory以外が表示されていれば 次に進みましょう

ClearDBアドオンの追加

ClearDBアドオンとは、MySQLを使うためのツールです。ClearDBというデータベースサービスが提供しているアドオンで、これを追加することにより、HerokuでMySQLを使用できるようになります。

% heroku addons:add cleardb

設定の変更

アドオンを追加したけどまだその設定ができていないので以下のコマンドを実行

% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`

これでClearDBデータベースのURLを変数heroku_cleardbに格納できました。

% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}

これでデータベースのURLを再設定できました。
AjaxAppではmysql2というGemを使用しているので、DATABASE_URLの冒頭がmysql2://に変更されていることも確認しておきましょう。

credentials.yml.encの中身の確認

以下のコマンドを実行して中身を確認

ターミナル
% EDITOR="vi" bin/rails credentials:edit

以下のような画面になったらおk
確認したら「escキー」→「:」→「q」と入力し、「enterキー」を押して credentials.yml.encを閉じる

環境変数の設定

heroku configコマンド

Heroku上で環境変数の参照・追加・削除等をする場合に用います。環境変数の追加であればheroku config:set 環境変数名="値"と実行します。そうすることによって、Heroku上で環境変数を追加できます。

以下のコマンドをターミナルで実行

ターミナル
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

% heroku config

以下のような感じになっていたらおk

アプリケーションをプッシュ

以下のコマンド2つを実行してアプリケーションをプッシュ

ターミナル
% heroku stack:set heroku-18 -a アプリケーション名
ターミナル
% git push heroku master

プッシュが成功したら以下のコマンドでマイグレーションを実行

ターミナル
% heroku run rails db:migrate

公開の確認

以下のコマンドでいろいろな設定を確認することができる

ターミナル
% heroku apps:info

上記のコマンドで実行したあと、その項目の中にWeb URL: https://....アプリのURL

があるのでそれがWEBで公開されているURLになる

% heroku config

上記はherokuの環境変数やデータベース設定を確認するコマンドになる。

もしそのURLんびアクセスしてエラーが出たら(汗

以下のコマンドを実行してヒントを得る

ターミナル
% heroku logs --tail --app アプリ名

「heroku logs アプリ名」のコマンドでも確認できるが、「--tail」オプションを使うことによって最新の10行のログのみを表示してくれるようにする

解説なんて不要だぁ!な、せっかちさん用コマンドのみのまとめ

ログインコマンド

ターミナル
% heroku login --interactive

Heroku上で作成

ターミナル
% heroku create アプリ名

ClearDBアドオンの追加

ターミナル
% heroku addons:add cleardb

設定の変更

ターミナル
% heroku_cleardb=`heroku config:get CLEARDB_DATABASE_URL`

データベースの再設定

ターミナル
% heroku config:set DATABASE_URL=mysql2${heroku_cleardb:5}

中身の確認、確認したら「escキー」→「:」→「q」と入力し、「enterキー」

ターミナル
% EDITOR="vi" bin/rails credentials:edit

環境変数の設定

ターミナル
% heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

アプリのプッシュ

ターミナル
% heroku stack:set heroku-18 -a アプリケーション名
ターミナル
% git push heroku master

マイグレーションの実行

ターミナル
% heroku run rails db:migrate

設定の確認

ターミナル
% heroku apps:info

最後まで見ていただいてありがとうございます!
誰かのお役に立てれば幸いです!