Capistrano - 清理旧版本

时间:2010-01-23 03:24:33

标签: capistrano

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

4 个答案:

答案 0 :(得分:153)

您可以使用:keep_releases变量覆盖默认值5.检查this

答案 1 :(得分:130)

您可以通过在deploy.rb

中设置此项来自动执行此操作
set :keep_releases, 1
after "deploy:update", "deploy:cleanup" 

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

答案 2 :(得分:41)

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

cap deploy:cleanup -s keep_releases=3

答案 3 :(得分:0)

我有类似的问题。我希望保留5个版本用于正常部署,但某些情况下需要能够删除所有以前的版本。

我能够通过自定义任务执行此操作。创建文件lib/capistrano/tasks/cleanup.rake并添加以下代码。

desc "Remove all but the last release"
task :cleanup_all do
    set :keep_releases, 1
    invoke "deploy:cleanup"
end

运行使用bundle exec cap staging cleanup_allcap staging cleanup_all