我们每天使用 capistrano(实际上是webistrano)进行 20 多次部署,但我们遇到了一个问题,即我们服务器上的磁盘空间充满了旧的部署文件夹。
我不时地运行deploy:cleanup
任务以清除所有部署(它保留最后一个:keep_releases
,当前设置为 30)。我想自动化清理。
一种解决方案是将以下内容添加到配方中,以便在每次部署后自动运行清理:
after "deploy", "deploy:cleanup"
但是,我不想在每次部署后都这样做,我想将其限制为仅当先前部署的数量达到阈值时,例如 70。有谁知道我该怎么做?
想法:
- Capistrano 是否提供了一个变量来保存先前部署的数量?
- 如果没有,有没有人知道计算它的方法。IE
set :num_releases, <what-can-I-put-here-to-count-previous-deployments>
- 如果没有,有没有人知道计算它的方法。IE
- 有没有办法拉皮条
deploy:cleanup
,所以它使用最小阈值,即如果< :max_releases
以前的部署(:max_releases
与 不同:keep_releases
)则退出。 - 可以使用
except
关键字吗?即类似的东西:except => { :num_releases < 70}
。