When I execute cap production deploy Capistrano's task, it tries to execute rake from /usr/bin/env but my gem is installed into /usr/local/rvm/gems/ruby-2.1.0/bin/rake !
Versions: Ruby 2.1 / Capistrano 3.0.1 / Rake 10.1.1 / Rails 3.2.16 / rvm 1.25.12
I'm using rvm on myserver to facilitate ruby installation, but I install and udate manually the gems with user rvm_admin. rvm has been installed 'system wide'. I don't use capistrano-rvm and I don't use capistrano-rails, as I manually update ruby, gems, assets, and migrations.
Platform: Working on XUbuntu 12.04.4 LTS Deploying to Debian Wheezy
Files:
Capfile
require 'capistrano/setup'
require 'capistrano/deploy'
Dir.glob('lib/capistrano/tasks/*.cap').each { |r| import r }
deploy.rb
set :application, 'odpf'
set :repo_url, '[email protected]:myrepo/myapp.git'
set :branch, 'production_1.01'
set :deploy_to, '/var/www/odpf'
set :pty, false
set :scm, :git
set :format, :pretty
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
# Your restart mechanism here, for example:
# l'exemple correspond à ce qu'il faut pour restart passenger :
# http://www.modrails.com/documentation/Users%20guide%20Apache.html#_redeploying_restarting_the_ruby_on_rails_application
execute :mkdir, '-p', "#{release_path}/tmp"
execute :touch, release_path.join('tmp/restart.txt')
end
end
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
# Here we can do anything such as:
# Conformément à : http://guides.rubyonrails.org/v3.2.14/command_line.html#tmp
within release_path do
execute :rake, 'tmp:cache:clear'
end
end
end
# Create symlink to database.yml after publication
before 'deploy:published', 'db_access:create_symlinks'
after :finishing, 'deploy:cleanup'
end
Stage files (production.rb, staging.rb)
set :stage, :production
server 'myserver.net', user: 'rvm_admin', roles: %w{web app db}
set :ssh_options, { forward_agent: true, port: 8888 }
When I perform a cap production deploy
, It goes well untill soem point at the end of the output :
INFO [0a0dbcb0] Running /usr/bin/env rake tmp:cache:clear on myserver.net
DEBUG [0a0dbcb0] Command: cd /var/www/odpf/releases/20140129101515 && /usr/bin/env rake tmp:cache:clear
DEBUG [0a0dbcb0] /usr/bin/env: rake
DEBUG [0a0dbcb0] : Aucun fichier ou dossier de ce type
cap aborted!
rake stdout: Nothing written
rake stderr: Nothing written
/home/douglas/.rvm/gems/ruby-2.1.0@rails3/gems/sshkit-1.0.0/lib/sshkit/command.rb:94:in `exit_status='
/home/douglas/.rvm/gems/ruby-2.1.0@rails3/gems/sshkit-1.0.0/lib/sshkit/backends/netssh.rb:125:in `block (4 levels) in _execute'
/home/douglas/.rvm/gems/ruby-2.1.0@rails3/gems/net-ssh-2.7.0/lib/net/ssh/connection/channel.rb:551:in `call'
Capistrano try to execute rake from /usr/bin/env
but my gem is installed here :
rvm_admin@myserver:/var/www/odpf/current$ bundle show rake
/usr/local/rvm/gems/ruby-2.1.0/gems/rake-10.1.1
rvm_admin@myserver:/var/www/odpf/current$ which rake
/usr/local/rvm/gems/ruby-2.1.0/bin/rake
What am I doing wrong ?