2

我的 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 服务器上)

4

1 回答 1

4

是的,目前使用 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

于 2013-07-20T00:07:10.033 回答