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