capistrano(実際にはwebistrano)を使用して1日に20を超えるデプロイメントを実行しますが、サーバーのディスク領域が古いデプロイメントフォルダーでいっぱいになるという問題があります。
時々、deploy:cleanupタスクを実行してすべてのデプロイメントをクリーンアップします(最後のデプロイメントを保持し:keep_releases、現在は30に設定されています)。クリーンアップを自動化したいのですが。
1つの解決策は、レシピに次を追加して、展開のたびにクリーンアップを自動的に実行することです。
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}です。