我有一个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