Capistrano – 清理旧版本
通常在使用capistrano时,我会去从已部署的应用程序手动删除旧版本。 我知道你可以运行cap deploy:cleanup
但是仍然会留下5个版本。 这是它的目的? 有没有另外一种方式来清理旧版本只有一个以前的部署?
你可以使用:keep_releases
variables来覆盖默认值5.检查一下。
你可以通过在你的deploy.rb中设置这个来自动完成
set :keep_releases, 1 after "deploy:update", "deploy:cleanup"
在过去(我不知道究竟是哪个版本)这个callback是默认的,但是后来开发者决定把它留给用户来决定。 在capistrano 3中,它被添加回默认的部署stream程。
如果您想删除除最后3个之外的所有版本,例如您可以运行:
cap deploy:cleanup -s keep_releases=3
我有一个类似的问题。 我想保留5个版本的正常部署,但需要在某些情况下能够删除所有以前的版本。
我能够做到这一点与自定义的任务。 创build一个文件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_all
或cap staging cleanup_all