0
votes

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!

1
Can you add the line that fails on capistrano?fotanus
try to update the ruby version and bundle on the server first..tihom

1 Answers

0
votes

I'm 90% sure you need to use this https://github.com/wayneeseguin/rvm-capistrano#disabling-bundle---deployment-when-using-gemsets :

set :bundle_dir, ''
set :bundle_flags, '--system --quiet'