我有一個Rails應用程序配置爲通過Capistrano和RVM進行部署。當我運行一個cap my_stage deploy
(這適用於我的所有階段),Capistrano bundle installs
到/var/www/my_app/shared/bundle
,即使我在我的config/deploy.rb
文件中指定我希望它使用[email protected]_app
gemset。capistrano不會將安裝捆綁到指定的gemset
這與我的預期背道而馳 - 我期望Capistrano能夠部署到我的用戶主目錄中:~/.rvm/gems/[email protected]_gemset/gems
。
我做錯了什麼?或者是這種預期的行爲。
這裏是我的部署文件:
require 'capistrano/ext/multistage'
require 'bundler/capistrano'
set :stages, %w(local development staging production)
set :default_stage, "local"
set :application, "My Rails App"
set :repository, "[email protected]:MyApp/my_app.git"
set :scm, :git
set :deploy_to, "/var/www/my_app"
set :use_sudo, false
ssh_options[:keys] = [File.join(ENV["HOME"], ".ssh", "my_key.pem")]
# RVM
$:.unshift(File.expand_path('./lib', ENV['rvm_path']))
require 'rvm/capistrano'
set :rvm_ruby_string, '[email protected]_app'
set :rvm_type, :user
set :user, 'my_user'
這是我.rvmrc
文件在我的Rails應用程序:
rvm_trust_rvmrc_flags=1
rvm use [email protected]_app
感謝, 最大
獲得了同樣的問題,不知道跆拳道是怎麼回事......我安裝RVM多用戶...看看這個網站:http://blog.mcmoyer.com/using-rvm-gemsets-for-部署雖然對我的情況沒有幫助,但:( – hamstar
最初,我非常惱火,我無法登錄到生產服務器,因爲RVM正在尋找'〜/中的gem,所以從部署目錄運行'rake db:migrate'。 rvm/...',但Capistrano已經將它們安裝到'/shared/bundle'。我通過運行'bundle exec rake db:migrate'來解決這個問題,它首先從' />加載Bundle選項。 bundle/config'。但是,我仍然想要解釋這種行爲。 –
maxenglander