Heroku を試してみる
Ruby On Rails の PaaS として有名な Heroku の使い方についてまとめてみます。
参考情報:
開発環境としては、Debian 6.0 を用います。
尚、Herokuの ruby version は 1.9.2の模様なので、Debianパッケージの ruby は使わずに rvm にてインストールした ruby-1.9.2 を使用します。
rubyのインストール(rvmを使用)
$ bash < <(curl -sk https://rvm.beginrescueend.com/install/rvm)
$ vi ~/.bash_profile
(下記を追加し、rvm環境を有効にする)
-s "$HOME/.rvm/scripts/rvm" && . "$HOME/.rvm/scripts/rvm"
(テスト例)
$ rails generate scaffold User name:string id:integer
$ rake db:migrate
$ git -a -m "update db"
$ git push heroku master
$ heroku rake db:migrate
(readlineやopenssl等、heroku で使用しそうなrubyライブラリは予め組み込んでおきます)
$ rvm pkg install readline
$ rvm pkg install openssl
$ rvm pkg install zlib
$ rvm install 1.9.2 --with-openssl-dir=$HOME/.rvm/usr \
--with-readline-dir=$HOME/.rvm/usr \
--with-zlib-dir=$HOME/.rvm/usr
$ rvm use 1.9.2 --default
Heroku をインストール
次に、herokuサービスにアクセスするためのパッケージ(gem)をインストールします。
$ gem install heroku
テストアプリの作成
開発環境の構築が完了したので、次は railsアプリを作成します。
$ rails generate hello
$ rails server
(開発環境でアプリが起動することを確認)
heroku に deploy
herokuにアプリをデプロイするには、以下の手順を踏みます。
- railsアプリを開発環境で作成
- heroku側のアプリケーションサーバを起動(初回のみ)
- gitリポジトリにソースコードを登録(または更新)
- git pushコマンドを用いて heroku にソースコードを転送
heroku側のアプリケーションサーバを起動
$ heroku create
heroku側のアプリケーションサーバを起動します。サーバが起動すると、URLが発行されます。
初回は Emailアドレス及びパスワードを要求されますので、サインアップ時に登録した情報を入力します。
Enter your Heroku credentials.
Email: joe@example.com
Password:
Uploading ssh public key /Users/joe/.ssh/id_rsa.pub
Created http://high-sunrise-58.heroku.com/ | git@heroku.com:high-sunrise-58.git
Git remote heroku added
gitリポジトリにソースコードを登録
(railsソースコードの top ディレクトリにて)
$ git init
$ git add .
$ git commit -m "Initial code"
git pushコマンドを用いて heroku にソースコードを転送
$ git push heroku master
ブラウザを開いてアプリの動作を確認
$ heroku open
heroku db:migrate 注意点
heroku で db:migrate をしようとすると、rakeコマンドがエラーで停止してしまいます。Rakefile の "require 'rake'" の手前で以下の require文 を追加すると良いようです。
require 'rake/dsl_definition'
(テスト例)
$ rails generate User name:string id:integer
$ rake db:migrate
$ git add .
$ git commit -m "update db"
$ git push heroku master
$ heroku rake db:migrate