Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

もくじ

  • 準備: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 Redis

Heroku上のRailsアプリでsessionをRedisに保存したい場合はこちらの記事をご参考ください
参考:Rails の session store に Heroku Redis を利用する - Qiita

補足:herokuコマンド

環境変数

# 環境変数一覧
$ heroku config

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

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

# 環境変数を削除
$ heroku config:unset ENV_VAR_NAME
NaokiIshimura
Ruby on Rails Engineer.
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした