symfony - 上限部署 :cleanup fails with use_sudo=true

标签 symfony capistrano rhel capifony

我的 capifony 部署运行良好,但 capifony 清理命令失败。

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

最佳答案

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

关于symfony - 上限部署 :cleanup fails with use_sudo=true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17754307/

相关文章:

ruby-on-rails - 为什么首先使用 Capistrano 部署运行 db :migrate?

git checkout 抛出致命引用不是树

python - pandas安装-numpy版本太旧

linux - 非常简单的 perl 脚本有大量内存泄漏

doctrine-orm - 如何在Doctrine2中的YML中创建唯一约束?

php - Nelmio Api Doc 中的组排除在更新 Composer 后不起作用

php - Doctrine 如何删除缓存

json - 访问 Json 对象 : Twig

Capistrano 运行本地命令失败时退出

linux - 使用 Samba 4 的 SSSD 身份验证