Railsチュートリアルの第一章のラストです。Herokuへのデプロイについて試してみました。
Herokuのセットアップ
HerokuではPostgreSQLデータベースを使用します (ちなみに発音は “post-gres-cue-ell” で、よく“Postgres”と略されます)。そのためには、本番 (production) 環境にpg gemをインストールしてRailsがPostgreSQLと通信できるようにします。
group :production do gem 'pg', '0.15.1' gem 'rails_12factor', '0.0.2' end
アプリケーションが前提としているRubyのバージョンを明示的に指定するといいみたいです。
ruby '2.0.0' #ruby-gemset=railstutorial_rails_4_0
チュートリアルで紹介されていたGemfileの内容はこちら
group :production doの部分が追加されています。
インストールの際には、bundle installに特殊なフラグを追加します。
$ bundle install --without production
-
- without productionオプションを追加すると、 本番用のgem (この場合はpgとrails_12factor) はローカルの環境にはインストールされません (Bundlerでreadlineエラーが発生した場合は、Gemfileにgem ’rb-readline’を追加してください)。
上で追加したgemは本番環境のみで使用するためのものなので、このコマンドを今実行してもgemはローカルに追加されません。このコマンドを実行するのは、後の本番環境に備えてGemfile.lockを更新し、pg gemとrails_12factor gem、Rubyバージョンの指定を含めておく必要があるためです。以下を実行して変更をコミットできます。
$ git commit -a -m "Update Gemfile.lock for Heroku"
続いてHerokuコマンドで作業を進めていきます。まずはheroku loginコマンドでHerokuにログインします。ユーザ名とパスワードを入力すればOKです。
$ heroku login
続いてheroku createコマンドでHerokuに新しいアプリを作成します。
$ heroku create
この時点では外枠のみ作成されています。
次のコマンドでHerokuにアプリをデプロイします。
$ git push heroku master
これでHerokuへのデプロイが完了です。
Herokuダッシュボードの右上にあるメニューからアプリにアクセスできます。
もしくは次のコマンドでもどうようにアクセスできます。
$ heroku open
このような画面が表示されると思います。
Rails 4.0のデフォルトページはHerokuでは表示できないため、エラーページが表示されるみたいです。実際に作成したアプリをデプロイすれば正しく表示されるとのことです。これでRailsアプリをHerokuにデプロイする方法まで確認することができました。
Herokuコマンドの紹介
Herokuアプリの名前変更は次のコマンドで実行できます。
$ heroku rename <<変更後のアプリ名>>
無事にRailsチュートリアルの第一章が完了しました。開発環境の設定、バージョン管理、本番環境へのデプロイについて確認できました。