Warning: I'm a bit of a newb with capistrano and rvm. Not with rails. I'm using the rvm-capistrano in my deploy script to create a gemset on ruby 1.9.3. It appears this works fine. The problem is when it tries to precompile assets, it's using gems from my shared/bundle/ruby/1.9.1/gems directory. This is a problem, but I'm not sure how to go at it... Is the problem where bundler puts the gems, where the gemset location points to, or is it just not trying to use the gemset. Any ideas? Here's my deploy script:
require 'mana/server_ec2'
# setup rvm
require 'rvm/capistrano'
set :rvm_ruby_string, :local # use the same ruby as used locally for deployment
#set :rvm_autolibs_flag, "read-only" # more info: rvm help autolibs
#before 'deploy', 'rvm:install_rvm' # install/update RVM
#before 'deploy', 'rvm:install_ruby' # install Ruby and create gemset, OR:
# before 'deploy:setup', 'rvm:create_gemset' # only create gemset
before :deploy, 'rvm:create_gemset'
set :default_stage, :vagrant
set :ruby_version, :brightbox
set :care_about_ruby_version, false
set :chef_version, '~> 11.4.0'
set :railsapp,
server_names: '_'
set :run_list, %w(
recipe[monit]
recipe[resque]
)
set :runner, 'nobody'
set :keep_releases, 10
task :set_permissions, :roles => :web do
run "sudo chmod 777 #{current_release}/tmp #{current_release}/tmp/pids -R"
end
after 'deploy:restart', 'deploy:restart_unicorn'
after 'deploy:finalize_update', :set_permissions
before 'deploy:assets:precompile' do
#upload 'vendor/assets/components.zip', "#{latest_release}/vendor/assets", via: :scp
#run "cd #{latest_release}/vendor/assets && unzip -o #{latest_release}/vendor/assets/components.zip"
run "cd #{latest_release} && bower install"
end
set :resque, queues: { "*" => 2 }
after 'deploy:update', 'deploy:cleanup'
after 'deploy:restart' do
sudo "monit -g #{application}-resque restart"
end
Let me know if any other info would be helpful. Thanks!