Rails
Heroku

HerokuにRailsアプリをデプロイする手順

もくじ

  • 準備:Herokuログイン
  • 準備:Gemfile修正
  • 準備:git commit
  • Herokuアプリ作成
  • リモートリポジトリの登録
  • デプロイ
  • アクセス確認

準備:Herokuログイン

CLIでHerokuにログインしておく

$ heroku login

準備:Gemfile修正

  • production(Heroku)でsqlite3を利用しないように修正しておく
  • production(Heroku)でpgを利用するように修正しておく
Gemfile
# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]
gem 'pg', group: :production

準備:git commit

ソースをコミットしておく

# アプリのディレクトリに移動する
$ cd rails-app

# 初期化
$ git init

# ディレクトリ配下のファイルをコミット対象にする
$ git add *

# コミット
$ git commit -m "Release to heroku"

Herokuアプリ作成

Herokuアプリを作成して、URLとGitリポジトリを取得する

  • <アプリ名>は省略可能。省略するとアプリ名が自動で払い出される
  • 払い出されたURLがHerokuアプリのURL、Gitリポジトリとなる
# アプリのディレクトリに移動する
$ cd rails-app

# Herokuアプリを作成する
$ heroku create <アプリ名>

Creating app... done, ⬢ xxxxx-xxxxx-xxxxx
https://xxxxx-xxxxx-xxxxx.herokuapp.com/ | https://git.heroku.com/xxxxx-xxxxx-xxxxx.git

リモートリポジトリの確認・登録

リモートリポジトリherokuが作成されてることを確認する

# リモートリポジトリを確認
$ git remote
heroku

リモートリポジトリherokuが存在しない場合は、heroku create <アプリ名>コマンド実行時に払い出されたgitリポジトリをリモートリポジトリherokuとして登録する

# リモートリポジトリを追加
$ git remote add heroku https://git.heroku.com/xxxxx-xxxxx-xxxxx.git

補足:ローカルリポジトリ作成(git init)後にheroku createコマンドを実行した場合はリモートリポジトリherokuが自動で追加されますが、 heroku createコマンド実行後にローカルリポジトリを作成(git init)した場合は、手動でリモートリポジトリherokuを追加する必要があります。

デプロイ

ローカルのmasterブランチをリモートリポジトリherokuへpushする

$ git push heroku master

...
To https://git.heroku.com/mighty-beyond-37933.git
 * [new branch]      master -> master

アクセス確認

heroku openコマンドを実行すると自動でブラウザが開き、HerokuアプリのURLにアクセスする

$ heroku open

または、HerokuアプリのURLにブラウザでアクセスする
https://xxxxx-xxxxx-xxxxx.herokuapp.com/

補足:Heroku Postgres

Heroku上のRailsアプリでDB(Heroku Postgres)を利用したい場合はこちらの記事をご参考ください。
参考:Heroku PostgresをRailsアプリで利用する手順 - Qiita

補足:herokuコマンド

環境変数

# 環境変数一覧
$ heroku config

# 環境変数名を指定して参照
$ heroku config:get ENV_NAME

# 環境変数を追加
$ heroku config:set ENV_NAME="value"

# 環境変数を削除
$ heroku config:unset ENV_VAR_NAME