web-dev-qa-db-ja.com

乗客がBundlerに私のgitgemが表示されないようにしています

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を実行すると正常に機能します。何が足りないのですか?

2
Adam Lassek

デプロイメントスクリプトをbundle install --deploymentを使用するように変更し、--deploymentオプションはgemをシステムディレクトリではなくvendor/bundleにインストールします。

2
Adam Lassek