【问题标题】:cap deploy:cleanup fails with use_sudo=truecap deploy:cleanup 因 use_sudo=true 而失败
【发布时间】:2013-07-19 19:46:59
【问题描述】:

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

【问题讨论】:

    标签: symfony capistrano rhel capifony


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-21
      • 1970-01-01
      • 1970-01-01
      • 2018-02-16
      • 2012-04-23
      • 2012-10-03
      • 2014-07-16
      • 2021-11-23
      相关资源
      最近更新 更多