Rails 3.1アプリケーションをnginx-1.0.0とpassenger-3.0.7を実行しているUbuntu11.04サーバーにデプロイしようとしています
/usr/local/rvm/gems/Ruby-1.9.2-p180
にシステムレベルのRVMをインストールしています
私のnginx.confは次のようになります:
http {
passenger_root /usr/local/rvm/gems/Ruby-1.9.2-p180/gems/passenger-3.0.7;
passenger_Ruby /usr/local/rvm/wrappers/Ruby-1.9.2-p180/Ruby;
# ...
server {
listen 80;
server_name my-domain.com;
root /srv/www/my_project/current/public;
passenger_enabled on;
Rails_env production;
}
}
問題は、Gemfileにgitリポジトリを指す2つのgemがあることです。 Bundlerは、それらがインストールされ、RVMのgemディレクトリに存在すると言いますが、Passengerはエラーをスローします。
[email protected]:my-gem (at master) is not checked out. Please run `bundle install` (Bundler::GitError)
デプロイメントディレクトリからRails console
を実行すると正常に機能します。何が足りないのですか?
デプロイメントスクリプトをbundle install --deployment
を使用するように変更し、--deployment
オプションはgemをシステムディレクトリではなくvendor/bundle
にインストールします。