programing tip

Capistrano-이전 릴리즈 정리

itbloger 2020. 7. 8. 07:58
반응형

Capistrano-이전 릴리즈 정리


일반적으로 capistrano를 사용할 때는 배포 된 응용 프로그램에서 이전 릴리스를 수동으로 삭제합니다. 나는 당신이 달릴 수는 cap deploy:cleanup있지만 여전히 5 개의 릴리스를 남긴다 는 것을 이해 합니다. 이것이 의도 된 목적입니까? 이전 릴리스를 1 개의 이전 배포로 정리하는 다른 방법이 있습니까?


:keep_releases변수를 사용하여 기본값 인 5를 대체 할 수 있습니다 . 이것을 확인하십시오 .


deploy.rb에서이를 설정하면 자동으로이를 수행 할 수 있습니다.

set :keep_releases, 1
after "deploy:update", "deploy:cleanup" 

과거 (이것은 정확히 어떤 버전인지 모르겠습니다)이 콜백은 기본값이지만 나중에 개발자는 사용자에게 결정하도록 결정했습니다. capistrano 3에서는 기본 배치 플로우에 다시 추가되었습니다.


예를 들어 마지막 3을 제외한 모든 릴리스를 삭제하려면 다음을 실행할 수 있습니다.

cap deploy:cleanup -s keep_releases=3

나는 비슷한 문제가 있었다. 일반 배포를 위해 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

참고 URL : https://stackoverflow.com/questions/2121957/capistrano-clean-up-old-releases

반응형