Rails で作ったアプリを Heroku にデプロイする手順をメモ
手順
- Heroku にログイン
- Gemfile 修正
- git commit
- Heroku アプリ作成
- リモートリポジトリ確認
- デプロイ
オプション
- Heroku 環境変数セット( credentials.yml.enc を使っている場合など)
- タイムゾーン変更
- Procfile 設定
Herokuにログイン
$ heroku login
Heroku CLI をインストールしていない場合は
$ brew install heroku/brew/heroku
これでインストールしてからログイン
Gemfile 修正
本番環境で PostgreSQL を使う場合、下記のように修正
group :development, :test do
gem 'sqlite3'
end
group :production do
gem 'pg'
end
git commit
すでにgitを導入している場合は、master ブランチに commit しておく。
導入していない場合は、下記のコマンドで commit する
# プロジェクトのディレクトリに移動する
$ cd rails-app
# 初期化
$ git init
# ディレクトリ配下のファイルをコミット対象にする
$ git add -A
$ git commit -m "initial commit"
Herokuアプリ作成
プロジェクトのディレクトに移動して下記コマンドを実行
$ heroku create <アプリ名>
リポジトリの確認
リモートリポジトリに heroku があるか確認
# リモートリポジトリを確認
$ git remote
heroku
デプロイ
ローカルの master ブランチを heroku に push する
$ git push heroku master
アクセス確認
$ heroku open
オプション
環境変数セット
credentials.yml.enc を使っている場合は、以下のコマンドで master.key を heroku の環境変数としてセット
$ heroku config:set RAILS_MASTER_KEY=`cat config/master.key`
タイムゾーン変更
config/application.rb に以下を追記
application.rb
config.time_zone = "Tokyo"
config.active_record.default_timezone = :local
heroku config でタイムゾーンを Asia/Tokyo に設定
Procfileの設定
Procfile は、アプリケーションがどのプロセスを使うのか宣言するためのファイル
使用する Web サーバを Puma にする場合は、ルートディレクトリに Procfile を作成して下記のようにする
web: bundle exec puma -C config/puma.rb