cap deploy:cleanup失败,use_sudo = true

时间:2013-07-19 19:47:00

标签: symfony capistrano rhel capifony

我的capifony部署工作得很好,但是capifony cleanup命令失败了。

我在ssh上使用私钥,使用sudo获取部署目录的写权限。

通过扩展日志记录,cap deploy:cleanup的结果是:

$ cap deploy:cleanup
* 2013-07-19 15:44:42 executing `deploy:cleanup'
* executing "sudo -p 'sudo password: ' ls -1dt /var/www/html/releases/* | tail -n +4 | sudo -p 'sudo password: ' xargs rm -rf"

在此实例中,修改权限以使部署用户对此目录具有完全写入权限。

有没有人见过/解决过这个问题? (这是在RHEL6服务器上)

1 个答案:

答案 0 :(得分:3)

是的,此时使用sudo时清理命令存在问题。这是解决这个问题的解决方案。将其添加到deploy.rb

  namespace :customtasks do
    task :customcleanup, :except => {:no_release => true} do
      count = fetch(:keep_releases, 5).to_i
      run "ls -1dt #{releases_path}/* | tail -n +#{count + 1} | #{try_sudo} xargs rm -rf"
    end
  end

然后将其称为清理

after "deploy:update", "customtasks:customcleanup"

https://github.com/capistrano/capistrano/issues/474

的更多信息