始めに
JRubyで開発したモジュールをHerokuにデプロイする方法を書いてみます
デプロイ
まずは読むべきサイト
https://devcenter.heroku.com/articles/moving-an-existing-rails-app-to-run-on-jruby
に必要なことは全部記載されています
重要なポイントを列挙してみる
Gemファイルへの記載
- ruby 'version', :engine => 'jruby', :engine_version => 'version'を記載する(versionにはそれぞれ使用するモジュールのversionを記載する
- gem 'activerecord-jdbcpostgresql-adapter'を追加する
- gem 'activerecord-jdbcsqlite3-adapter'をコメントアウトする
- gem 'tzinfo-data'のplatforms:をjrubyのみにする
Gemファイルの修正後にやること
- bundle updateを実行しGemfile.lockを更新する
デプロイ後、herokuのサイトにアクセスしたときエラーが出たら
まずやること
heroku run rails c
を打ち、エラーが発生している個所を特定する
大体の場合、
/usr/bin/env: ‘jruby.exe’: No such file or director
というエラーが出るので、
「bin/bundle,bin/rails,bin/rake」の「jruby.exe」を「jruby」に変更する
(参考サイト)
https://stackoverflow.com/questions/18433609/getting-usr-bin-env-ruby-exe-no-such-file-or-directory-on-heroku