Biasanya ketika menggunakan capistrano, saya akan pergi dan secara manual menghapus rilis lama dari aplikasi yang digunakan. Saya mengerti bahwa Anda dapat menjalankan cap deploy:cleanup
tetapi masih menyisakan 5 rilis. Apakah ini tujuan yang dimaksudkan? Apakah ada cara lain untuk membersihkan rilis lama menjadi hanya 1 penyebaran sebelumnya?
capistrano
Josh
sumber
sumber
Jawaban:
Anda dapat menggunakan
:keep_releases
variabel untuk mengganti default 5. Lihat ini .sumber
after
hook. Memanggilnya langsung menunjukkan kesalahan ... Saya menyadari ini ketika saya mulai kehabisan ruang disk.Anda bisa melakukan ini secara otomatis dengan mengatur ini di deploy.rb Anda
Di masa lalu (saya tidak tahu versi mana) callback ini adalah default, tetapi kemudian pengembang memutuskan untuk menyerahkannya kepada pengguna untuk memutuskan. Dalam capistrano 3 ditambahkan kembali ke aliran penyebaran default.
sumber
deploy:cleanup
sebagai bagian dari alur penyebaran .Jika Anda ingin menghapus semua rilis kecuali 3 terakhir misalnya Anda dapat menjalankan:
sumber
optionParser::InvalidOption: invalid option: s
Saya punya masalah serupa. Saya ingin mempertahankan 5 rilis untuk penyebaran normal tetapi diperlukan untuk situasi tertentu untuk dapat menghapus semua rilis sebelumnya.
Saya dapat melakukan ini dengan tugas khusus. Buat file
lib/capistrano/tasks/cleanup.rake
dan tambahkan kode berikut.Untuk menjalankan gunakan
bundle exec cap staging cleanup_all
ataucap staging cleanup_all
sumber