トップ «前の日記(2012/03/29 (木) ) 最新 次の日記(2012/03/31 (土) )» 編集 RSS feed

HsbtDiary


2012/03/30 (金) [長年日記]

[heroku][jruby] Heroku で JRuby を使おうとしている途中

tDiary on Heroku がそこそこまともに動くので、Rack の上で動かして RDB が使えるなら JRuby でもまともな早さになるんじゃねーのと色々やっている。

アプリケーションサーバーに trinidad, database adapter に jdbc-postgres を使うようにした。heroku 側の変更点は以下の2つ。

  • DATABASE_URL に SHARED_DATABASE のような URL の文字列を jdbc ように変形させたもの、例えば jdbc:postgresql://hostname/dbname?user=user&password=pass&sslfactory=org.postgresql.ssl.NonValidatingFactory のような形にする
  • user_env_compile を利用して RUBY_VERSION=jruby-1.6.7 を設定する

ここまでやって Procfile の web を bundle exec jruby --1.9 -S trinidad で動くと思いきや、trinidad の起動時に下のようなエラーでさっぱり進まなくなってしまった。

org.jruby.exceptions.RaiseException: (GemNotFound) Could not find rake-0.9.2.2 in any of the sources
 	at SpecSet.materialize(/app/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.2/lib/bundler/spec_set.rb:90)
	at org.jruby.RubyArray.map!(org/jruby/RubyArray.java:2371)
	at SpecSet.materialize(/app/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.2/lib/bundler/spec_set.rb:83)
...

うーん、rake は Gemfile にも明示的に書いてるし、git push heroku 時点でもちゃんとインストールされているように見えるから、何が原因で上のようなエラーが発生しているのかさっぱりわからんなー。続く。