When trying to deploy an app on the production server, the
deploy:cleanup task always died for me like this:
* executing `deploy:cleanup' * executing "ls -x /opt/sites/mysite/releases" servers: ["myserver"] [myserver] executing command command finished ** keeping 3 of 4 deployed releases * executing "rm -rf /opt/sites/mysite/releases/20080220092659" servers: ["myserver"] [myserver] executing command ** [out :: myserver] sudo: no passwd entry for app! ** [out :: myserver] command finished command "rm -rf /opt/sites/mysite/releases/20080220092659" failed on myserver
Turns out capistrano is for some reason trying to use a user called app in the cleanup task even though the
:user parameter is set to something else in
config/deploy.rb. The solution was to set the
:runner parameter as well:
set :runner, 'someotheruser'
Don’t ask me why that worked. It seems a bit counterintuitive that the cleanup task uses the
runner param rather than
user. Found the hint towards the solution here.