【Heroku】Railsアプリをデプロイする方法

Railsアプリを↓のチュートリアルに記載のとおりHerokuにデプロイしてみましたが、驚くほど簡単にできました。

参考 Heroku デプロイRuby on Rails チュートリアル

しかし、あまりに簡単すぎてHerokuで何が行われているのか気になったので少し説明を補足して手順を書きました。

PostgreSQLを使用するように設定

Gemfileを編集

HerokuはデフォルトでPostgreSQLを使用するためGemfileを編集します。ここではHerokuのみPostgreSQLを使用しローカル環境ではSQLite等の別のDBを使用することを想定してgroupのなかに記載しています。ローカル環境でもPostgreSQLを使用する場合はgroupのなかに記載する必要はないです。

Gemfile

開発、テスト環境ではSQLiteを使用する場合、development, test groupのなかに記載します。

Gemfile

gemをインストール

上記で編集したGemfileをもとにGemfile.lockを作成するためにローカルでgemをインストールします。(本番でなくローカルで作成してください)

–without production というオプションをつけています。これはGemfileのproductionグループはインストールの対象外にする指定です。
このオプションをつけても対象外にしたgemはGemfile.lockに記載されているので安心してください。

gitにpush

ここまでに修正したGemfileとGemfile.lockをgitにpushします。

Herokuにアプリケーション作成

Herokuへのユーザ登録やHerokuコマンドのインストールは説明を省略します。

Herokuにログイン

登録したユーザのIDとPWでログインします。–interactiveはCLIで操作するオプションで付けないとブラウザ画面が開きます。

公開鍵を登録

Herokuとssh接続するための公開鍵登録を行います。これを登録しないと以降の手順でエラーとなります。
コマンド実行後に~/.ssh/にキーが登録されます。

Herokuにアプリケーション作成

アプリケーションを作成するとHerokuの画面に追加されます。

これでドメインが発行されたのでここに作成したアプリをデプロイします。

デプロイ

ここまでで準備は整いました。再度アプリを修正したらここから実行すればよいです。

これだけです。gitでherokuリポジトリに登録してあげればよいだけです。

ちなみにコマンド内のherokuはリポジトリ名を表していますが、heroku createしたタイミングで.git/configに登録されているのでこのような指定で大丈夫なわけです。

マイグレーション

マイグレーションが必要な場合は以下を実行します。

確認

アプリケーションのOpen appから画面を開けます。正常に開ければ完了!

最後に

GitHubと連携することで自動デプロイする仕組みや自動マイグレーションの仕組みもあるのでそこらへんも今後試してみたいと思います。