2016-08-02 43 views
1

我想部署軌道應用程序與卡皮斯特拉諾。應用已部署,捆綁安裝運行在
〜/ .rvm/bin/rvm默​​認捆綁安裝--path/home/pro/www/shared/bundle - 無開發測試 - 部署 - 安靜Rails應用程序與乘客和卡皮斯特拉諾採摘錯誤gemset

但是當我運行應用程序時,它使用默認的gemset而不是來自shared/bundled的gem。我得到以下錯誤

Message from application: <p>It looks like Bundler could not find a gem. Maybe you didn't install all the gems that this application needs. To install your gems, please run:</p> 


Could not find rake-11.2.2 in any of the sources (Bundler::GemNotFound) 

<pre> /home/pro/.rvm/gems/[email protected]/gems/bundler-1.12.5/lib/bundler/spec_set.rb:95:in `block in materialize&#39; 

我不理解這裏的問題。 MY deploy.rb文件有:

set :application, 'rails_a[[' 
set :repo_url, '[email protected]:user/app.git' 
# set :rvm_ruby_version, '[email protected]' 

集:階段,%W(生產) 集:deploy_to, '/家庭/ PRO/WWW'

回答

0

問題可能是您的配置。由於rvm根據ruby版本設置$GEM_HOME env變量,並且bundler默認它是路徑(即BUNDLE_PATH)至$GEM_HOME(至少在開發中)。你可以在bundler config中覆蓋這個。

在您的應用程序目錄中。

bundle config --local path /home/pro/www/shared/bundle 

local標誌將保留所做的更改特定於應用程序,你也應該從你的.gitignore刪除.bundle把你的包CONFIGS到部署服務器。

查看軟件包配置documentation

This也是一個不錯的博客文章。

0
Capistrano and RVM 

[ruby] 
$:.unshift(File.expand_path(‘./lib’, ENV['rvm_path'])) 
require "rvm/capistrano" 
set :rvm_ruby_string, ‘[email protected]′ 
set :rvm_type, :user 
[/ruby] 

這裏@ rails3.2是gemset。當capistrano將調用bundle安裝時,它會使用這個gemset。所以你需要設置rvm_ruby_string

相關問題