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}
です。