Capistrano - 清理旧版本

Jos*_*osh 124 capistrano

通常在使用capistrano时,我会从已部署的应用程序中手动删除旧版本.我知道你可以运行,cap deploy:cleanup但仍然有5个版本.这是它的目的吗?还有另一种方法可以将旧版本清理到之前的1次部署吗?

jcr*_*ey3 153

您可以使用:keep_releases变量来覆盖5.检查的默认这个了.

  • @Josh你接受了这个答案,但是你应该检查你是否设置了"deploy:cleanup"的回调,如下所述,因为默认情况下它没有运行. (8认同)
  • 值得注意的是,即使find + rm命令无法删除某些文件,当通过`after`钩子调用时,任务似乎默默地"成功".直接调用它会显示错误......当我开始耗尽磁盘空间时,我意识到了这一点. (2认同)

Die*_*ntz 130

您可以通过在deploy.rb中设置它来自动执行此操作

set :keep_releases, 1
after "deploy:update", "deploy:cleanup" 
Run Code Online (Sandbox Code Playgroud)

在过去(我不确切知道哪个版本)这个回调是默认的,但后来开发人员决定将其留给用户来决定.在capistrano 3中,它被添加回默认部署流程.

  • 看起来 [Capistrano 3 调用 `deploy:cleanup` 作为部署流程的一部分](https://github.com/capistrano/capistrano/blob/690afc0c5c3c43d2920b0bfdeb9323c286b12106/lib/capistrano/tasks/deploy3)。 (2认同)

jes*_*cai 41

如果要删除除最后3个之外的所有版本,例如,您可以运行:

cap deploy:cleanup -s keep_releases=3
Run Code Online (Sandbox Code Playgroud)

  • 不行.`optionParser :: InvalidOption:无效选项:s` (7认同)