今回の環境は下記を想定しています。
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へのデプロイを試してみましょう。
コメント