Rails4でHerokuにデプロイする方法

プログラミング
[photo by Adam Wiggins]

今回の環境は下記を想定しています。

OS: OS X Mavericks 10.9.5
Xcode: 6.0.1
ruby: ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0]
Rails: 4.0.5
gem: 2.2.2

Herokuの準備

Herokuのオフィシャルページに行ってアカウントを取得します。
Herokuオフィシャルサイト

Herokuのアカウントが取得できたら、デプロイに必要なローカル環境を設定するためにHeroku Toolbeltをインストールします。
Heroku Toolbeltオフィシャルサイト

これで、ローカルからHerokuへデプロイする環境が整いました。

Rails4のGemfile設定

Herokuでは標準データベースとしてPostgreSQLを採用しています。

PostgreSQLに接続するためには、アプリケーション側でGemfileを設定して、pgライブラリを有効にしておく必要があります。

このGemfile例のように、本番環境(production)でpgを有効にして、開発環境(development)ではsqlite3を有効にします。

group :development do
gem 'sqlite3'
end
group :production do
gem 'pg'
gem 'rails_12factor'
end

Gemfileの設定ができたら、bundle installを実行します。

本番環境のgem(この場合はpgとrails_12factor)がローカルの環境にインストールされるのを防止するために、–without productionオプションを追加して実行します。

$ bundle install --without production

実際にはこのコマンドを実行しても、gemはローカルにインストールされません。

わざわざこのコマンドを実行する理由は、本番環境に備えてGemfile.lockを更新する必要があるためです。

それでは、次のコマンドで変更Gemfile.lockをコミットします。

$ git commit -a -m "Update Gemfile.lock for Heroku"

Herokuにデプロイする

ここからは、Herokuサーバーの設定になります。

Herokuへログインする

下記のコマンドを実行してHerokuへログインします。

$ heroku login
Enter your Heroku credentials.
Email: *****@*****
Password (typing will be hidden):
Could not find an existing public key.
Would you like to generate one? [Yn] Y
Generating new SSH public key.
Uploading SSH public key /Users/*****/.ssh/id_rsa.pub... done
Authentication successful.

初めてログインする際は、公開鍵が作成されます。

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

ログインと公開鍵の作成が済んだら、Herokuにアプリケーションの場所を作成します。

$ heroku create

Herokuへデプロイする

アプリケーションの場所を作成したら、Gitを使用して、Herokuにリポジトリをプッシュします。

$ git push heroku master

これで、Herokuへのアプリケーションのデプロイが完了しました。

最後に、データベースのマイグレーションを実行します。
必要に応じてフィクスチャの展開も行います。

$ heroku run rake db:migrate
$ heroku run rake db:fixtures:load

[参考] Herokuへgitのブランチをデプロイする場合

ブランチをデプロイしたい場合は、以下の様なコマンドをします。

$ git push heroku ブランチ名:master

確認

以下のコマンドでデプロイしたアプリケーションがブラウザで開かれます。

$ heroku open

Herokuへのデプロイでエラーが出る場合

production環境用にアセットをプリコンパイルする

javascriptファイルの変更などをした場合は、アセットのプリコンパイルが必要になります。
下記のコマンドでプリコンパイルを実行します。

$ bundle exec rake assets:precompile

gitへのコミットをする

$ git add .
$ git commit -m "Add precompiled assets for Heroku"

gitへのコミットが済んだら、もう一度Herokuへのデプロイを試してみましょう。

コメント

この記事が気に入ったら最新ニュース情報を、
いいねしてチェックしよう!