2012年1月9日月曜日

herokuをつかってみる(デプロイ編)

前回、アカウント登録〜SSH鍵登録まで行った。 今回は、HelloWorldアプリのデプロイまでやってみる。 環境は以下の通り
  • OS: Linux (CentOS 5.5)
  • Ruby: 1.9.2
  • git: 1.7.4
公式HPのGetting Started with Rails 3.0 on Heroku/Cedarにしたがって実施。 まず、herokuのgemをインストール
# gem install heroku
続いて、railsのアプリ作成
# rails new myapp # cd myapp
作ったアプリをpostgresql用に変更。Gemfileの「gem 'sqlite3'」を「gem 'pg'」に変更して、「bundle install」を実行することによりGemfile.lockを更新する。
# bundle install
次にgitに登録。
# git init
# git add .
# git commit -m "init"
次に、herokuにstackを作る。
# heroku create --stack cedar
Invalid gemspec in [/usr/local/lib/ruby/gems/1.9.1/specifications/heroku-2.18.0.gemspec]: invalid date format in specification: "2012-01-09 00:00:00.000000000Z"
Invalid gemspec in [/usr/local/lib/ruby/gems/1.9.1/specifications/term-ansicolor-1.0.7.gemspec]: invalid date format in specification: "2011-10-13 00:00:00.000000000Z"
/usr/local/lib/ruby/site_ruby/1.9.1/rubygems.rb:925:in `report_activate_error': Could not find RubyGem heroku (>= 0) (Gem::LoadError)
エラー発生。Gemのロードエラーとのこと。 とりあえず、gemspecのフォーマットエラーが出てるので、エラーを解消してみる。 解消の仕方は、多少強引だが、エラーになっている.gemspacファイルの"2011-10-13 00:00:00.000000000Z"の部分を、読めるフォーマットの"2011-10-13"に書き直す。 再度実行。
# heroku create --stack cedar
Creating warm-sunrise-9514... done, stack is cedar
http://warm-sunrise-9514.herokuapp.com/ | git@heroku.com:warm-sunrise-9514.git
Git remote heroku added
今度はうまくいった。 これで、herokuに 「warm-sunrise-9514」という名前のアプリができる。 「heroku list」コマンドで確認できる。
# heroku list growing-snow-4642
また、herokuのWebサイトにログインしても確認できる。 ちなみに「--stack cedar」というののが意味不明だが、「cedar」は、rails3用のアプリのコンテナ(?)的なものらしく、rails3を使う場合は、これを指定しないといけないらしい。miagoさんのブログに解説されています。 また、作られたアプリ名が「warm-sunrise-9514」とこれまた意味不明だが、 これはherokuが勝手にランダムに二つの単語をつなげてアプリ名にするようです。 後でWebサイトかえられます。 いよいよデプロイ。 ローカルのgitのレポジトリを、herokuにpushすることによりデプロイができる。
# git push heroku master
これも問題なく完了。 その後は、railsでdbを初期化するために以下を実行
# heroku run rake db:migrate
seedもいれてみる。
heroku run rake db:seed

0 件のコメント:

コメントを投稿