CodeLog

開発メモ

Ruby on RailsアプリをHerokuへデプロイ

Ruby on Railsチュートリアルに沿って勉強中です。
前回Herokuのユーザアカウントを作成してから少し間が開いてしまいましたが、今日は実際にRailsアプリをデプロイしてみようと思います。

Heroku向けのGemfile作成

  1. Gemfileにproductionをターゲットにして「pg」と「rails_12factor」を追記
    • pgはPostgreSQLですが、productionではHerokuがサポートしているPostgreSQLを使用します
    • rails_12factorについはあまり良くわかっていませんが、Heroku上で動作できるようにRailsの動作を変更するライブラリのようです。ログの保存先が変更されたり、静的アセット(画像、スタイルシート、jsファイル)に微調整が加えられるとのことです
  2. 「bundle install --without production」コマンド実行
    • 「--without production」を指定することで、ローカルに「pg」と「rails_12factor」はインストールされなくなります
    • ここではGemfile.lockを更新してコミットしておくために、bundle installを実行します
  3. gitに変更内容をコミット
$ tail -n 4 Gemfile
group :production do
  gem 'pg', '0.15.1'
  gem 'rails_12factor', '0.0.2'
end
$ bundle install --without production
Fetching gem metadata from https://rubygems.org/..........
Resolving dependencies...
Using rake 10.4.2
...(中略)...
Your bundle is complete!
Gems in the group production were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
$ git commit -a -m "Update Gemfile.lock for Heroku"
[master 09df5a9] Update Gemfile.lock for Heroku
 2 files changed, 13 insertions(+)

Herokuにログイン

  1. https://toolbelt.heroku.com/:topをインストール
  2. 「heroku login」コマンドでHerokuにログイン
  3. 「heroku create」でアプリケーションを作成(アプリのルートディレクトリでコマンドを実行)
  4. Gitを使用してHerokuにリポジトリをプッシュ
    • これだけでデプロイ完了だそうです!
  5. 「heroku open」でブラウザ起動
    • …できるらしいですが、直接ブラウザから「https://radiant-crag-NNNN.herokuapp.com/」を開きました
    • Rails4.0ではエラーページになってしまうらしいですが、ルーティングの追加で解消するそうです
$ wget -qO- https://toolbelt.heroku.com/install-ubuntu.sh | sh
...(中略)...
$ heroku login
Enter your Heroku credentials.
Email: <email address>
Password (typing will be hidden):
Authentication successful.
$ heroku create
Creating radiant-crag-NNNN... done, stack is cedar-14
https://radiant-crag-NNNN.herokuapp.com/ | https://git.heroku.com/radiant-crag-NNNN.git
Git remote heroku added
$ git push heroku master
Counting objects: 67, done.
Compressing objects: 100% (56/56), done.
Writing objects: 100% (67/67), 15.24 KiB | 0 bytes/s, done.
Total 67 (delta 6), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.0.0
...(中略)...
remote: Verifying deploy... done.
To https://git.heroku.com/radiant-crag-NNNN.git
 * [new branch]      master -> master

ここまででチュートリアルの第1章が終わりました。
新しいことを始めると、ここまでのステップが大変ですが、このチュートリアルはかなり親切に記述されていて助かりました。関連して身に付けるべき(身に付けておきたい)知識についても、ある程度調べながら進めてくることができたので良かったです。とは言え、まだ理解できていない部分も多いので、今後の課題の意味も含めて箇条書きにしておこうと思います。

*1:Subversionとの違いは上手いことまとめられていません。悪しからず。