Обычно при использовании capistrano я буду вручную удалять старые версии из развернутого приложения. Я понимаю, что вы можете запустить cap deploy:cleanup
, но это все еще оставляет 5 релизов. Это намеченная цель? Есть ли другой способ очистки старых версий до всего лишь одного предыдущего развертывания?Capistrano - очистка старых версий
ответ
Вы можете использовать переменную :keep_releases
, чтобы переопределить значение по умолчанию 5. Проверьте this.
Отлично. Это именно то, что я искал. Спасибо. – Josh
Добро пожаловать! Вы могли бы просто принять ответ! :-) – jcrossley3
@ Josh, определенно, примите этот ответ, если он решит вашу проблему. Вы оба получаете реплики таким образом. –
Вы могли бы сделать это автоматически, установив это в deploy.rb
set :keep_releases, 1
after "deploy:update", "deploy:cleanup"
В прошлом (я не знаю точно, какая версия) этот обратный вызов был по умолчанию, но позже разработчик решил оставить это пользователю решить. В capistrano 3 он был добавлен обратно к потоку развертывания по умолчанию.
спасибо, Diego. Ваш ответ работает правильно в Capistrano v2.14.1. – scarver2
Спасибо @diego, это действительно помогло! – gouravtiwari21
Похоже, что [Capistrano 3 вызывает 'deploy: cleanup' как часть потока развертывания] (https://github.com/capistrano/capistrano/blob/690afc0c5c3c43d2920b0bfdeb9323c286b12106/lib/capistrano/tasks/deploy.rake#L23). – Dennis
Если вы хотите удалить все выпуски, за исключением последнего 3, например, вы можете запустить:
cap deploy:cleanup -s keep_releases=3
Не работает. 'optionParser :: InvalidOption: недопустимая опция: s' – Snowman
У меня была аналогичная проблема. Я хотел сохранить 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_all
или cap staging cleanup_all
это всегда хорошая идея, чтобы сохранить некоторые предыдущие выпуски, то если вы в последний раз развернуть содержит большую ошибку, вы можете быстро откатить с Капистрано (крышка развёртывании: откате) к предыдущий релиз, пока вы его не исправите. – damoiser