Ruby on RailsアプリをHerokuへデプロイ
Ruby on Railsのチュートリアルに沿って勉強中です。
前回Herokuのユーザアカウントを作成してから少し間が開いてしまいましたが、今日は実際にRailsアプリをデプロイしてみようと思います。
Heroku向けのGemfile作成
- Gemfileにproductionをターゲットにして「pg」と「rails_12factor」を追記
- pgはPostgreSQLですが、productionではHerokuがサポートしているPostgreSQLを使用します
- rails_12factorについはあまり良くわかっていませんが、Heroku上で動作できるようにRailsの動作を変更するライブラリのようです。ログの保存先が変更されたり、静的アセット(画像、スタイルシート、jsファイル)に微調整が加えられるとのことです
- 「bundle install --without production」コマンド実行
- 「--without production」を指定することで、ローカルに「pg」と「rails_12factor」はインストールされなくなります
- ここではGemfile.lockを更新してコミットしておくために、bundle installを実行します
- 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にログイン
- https://toolbelt.heroku.com/:topをインストール
- 「heroku login」コマンドでHerokuにログイン
- 「heroku create」でアプリケーションを作成(アプリのルートディレクトリでコマンドを実行)
- Gitを使用してHerokuにリポジトリをプッシュ
- これだけでデプロイ完了だそうです!
- 「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章が終わりました。
新しいことを始めると、ここまでのステップが大変ですが、このチュートリアルはかなり親切に記述されていて助かりました。関連して身に付けるべき(身に付けておきたい)知識についても、ある程度調べながら進めてくることができたので良かったです。とは言え、まだ理解できていない部分も多いので、今後の課題の意味も含めて箇条書きにしておこうと思います。
- WindowsでLinuxの仮想環境を作るっていったいどうするの?
- Gitって最近の主流だって聞くけど、Subversionとは何が違うの?*1
- Heroku?PaaS?
- ExecJSって何?(チュートリアルの第1章で唯一嵌った部分です…)
*1:Subversionとの違いは上手いことまとめられていません。悪しからず。