Herokuを用いたRailsアプリのデプロイ


Herokuのアカウントを作る

まずは以下のページからHerokuのアカウントを作りましょう。
https://signup.heroku.com/login
すると、登録したメールアドレス宛にHerokuから認証用のメールが送信されるので、リンクをクリックしてリンク先でパスワードの設定を行います。

これで登録は完了です。

アプリの設定を変更する

アプリ側の設定をHerokuに合わせて変更します。

・Gemの追加
HerokuではPostgreSQLというデータベースを使うため、pgというgemをインストールする必要があります。
本番環境だけにインストールできればいいので、group :production do ~ endの間に記載します。

group :production do
  gem 'pg'
end

.database.ymlの修正
上述のようにHerokuではPostgreSQLを使用しているので、database.ymlも本番環境(production)の記述を変更します。

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5

GitHubに反映

設定ファイルの修正が完了したため、GitHubのマスターブランチに反映しましょう。

Herokuを自分のPCにインストール

以下のURLからHerokuをインストールしましょう。
私はMacを使っているのでHomebrewを使ってインストールします。
https://devcenter.heroku.com/articles/heroku-cli

・インストールコマンド実行

% brew tap heroku/brew && brew install heroku

・インストール完了後、herokuのバージョンを確認することで、herokuがインストールされているか確認。
ここでherokuコマンドが見つからないというエラーメッセージが出るので、パスを通してあげます。

 % heroku -v
zsh: command not found: heroku

パスを通す

~/.zshrcにherokuコマンドのパスを追記します。

vim ~/.zshrc

~/.zshrcに以下を追記

export PATH=$PATH:/usr/local/Cellar/heroku/7.39.5/libexec/bin

sourceコマンドでzshrcの内容を反映する。

% source ~/.zshrc

これでherokuコマンドが実行できるようになります。

% heroku -v
heroku/7.41.1 darwin-x64 node-v12.16.2

・あまりお勧めしないやり方
以下のようにechoコマンドで.zshrcにパスを追記することもできますが、>>ではなく>で.zshrcの内容を全て上書きしてしまう可能性があるため、個人的にはvimで編集することをお勧めします。

echo 'export PATH=$PATH:/usr/local/Cellar/heroku/7.39.5/libexec/bin' >> ~/.zshrc

PCからherokuにログインする

loginコマンドを実行するとブラウザが起動しHerokuのログイン画面に飛びます。
ログインを実行後、ターミナルに戻って作業を再開します。

% heroku login
heroku: Press any key to open up the browser to login or q to exit: 

ターミナルからの操作でHerokuのアプリを作ります。
ここで作ったアプリにGithubからコードを反映することでデプロイできるようになります。(アプリ名がURLになるので、名前は一意となるものにしてください)

% heroku create アプリ名

デプロイ

以下のコマンドでデプロイしましょう。

% cd アプリを格納しているディレクトリ
% git push heroku master

おそらくこんな感じのエラーが出ます。

% git push heroku master
fatal: 'heroku' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

.git/configを修正することでエラーを回避できます。

% vim .git/config

以下を追記することで"heroku"がどこのURLを指すのか指定します。
アプリ名は上述の「heroku create アプリ名」で作成したアプリを記述してください。

[remote "heroku"]
  url = https://git.heroku.com/アプリ名.git
  fetch = +refs/heads/*:refs/remotes/heroku/*

それでは再度デプロイ。

% git push heroku master

デプロイ完了後はマイグレーションを行います。

% heroku run rails db:migrate

ここまで正常終了すればHerokuにアプリが上がっているはず!
ターミナルで「heroku open」を入力するか、https://アプリ名.herokuapp.com/にアクセスして確認しましょう!