Ingin update aplikasi Docker Compose tanpa henti? Perkenalkan “Docker Rollout”, alat yang memudahkan proses update dengan klaim minim downtime (gangguan)!
Apa itu Docker Rollout?
Docker Rollout adalah sebuah tool yang bisa mengupdate service Docker Compose secara otomatis. Biasanya, update service secara manual mengharuskan kita melakukan beberapa langkah agar tidak terjadi downtime, seperti:
- Menjalankan service dengan jumlah instance 2x lipat dari biasanya.
- Menunggu container baru siap.
- Mematikan container lama.
Docker Rollout membantu kita mengautomasi langkah-langkah tersebut, sehingga update bisa berjalan lebih efisien.
Tapi, ada catatan penting!
- Agar Docker Rollout berfungsi dengan baik, pastikan service Docker Compose Anda tidak memiliki pengaturan “container_name” dan “ports” di file “docker-compose.yml”. Sebaiknya gunakan reverse proxy untuk menangani pengaturan tersebut.
- Selama update, Docker Rollout akan menambah angka indeks container (contoh: “web-1” menjadi “web-2”).
- Meski minim downtime, beberapa image Docker seperti Nextcloud mungkin akan masuk ke mode maintenance selama beberapa detik.
Untuk penggunaan profesional, pendekatan manual mungkin lebih disarankan karena fleksibilitasnya. Namun, Docker Rollout bisa menjadi teman yang baik untuk proyek personal Anda!
Mari kita instal dan gunakan Docker Rollout!
Instalasi Docker Rollout di Linux
Proses instalasinya mudah. Buka terminal Linux dan jalankan perintah berikut:
# Buat direktori untuk plugin Docker cli.
$ mkdir -p ~/.docker/cli-plugins
# Download script Docker-rollout ke direktori plugin.
$ curl https://raw.githubusercontent.com/wowu/docker-rollout/master/docker-rollout -o ~/.docker/cli-plugins/docker-rollout
# Berikan akses eksekusi ke script.
$ chmod +x ~/.docker/cli-plugins/docker-rollout
Dengan langkah ini, perintah “docker rollout” sudah bisa digunakan.
Update Service Docker Compose dengan Docker Rollout
Sebagai contoh, misalkan kita memiliki file Docker Compose berikut:
version: "3.7"
services:
my-web:
image: username/nginx:v1
networks:
- localweb
my-db:
image: username/mysql:v1
networks:
- localweb
networks:
localweb:
Anggap service Docker Compose sudah berjalan dan image Nginx dan MySQL versi 2 sudah tersedia. Untuk update, edit file Docker Compose dan ubah image menjadi “v2”. Kemudian jalankan perintah:
Catatan: Saat ini, Docker Rollout belum bisa update multiple service sekaligus.
# Update container Nginx.
$ docker rollout -f docker-compose.yml my-web
# Update container MySQL.
$ docker rollout -f docker-compose.yml my-db
Perintah ini akan menjalankan container dengan image baru sebanyak 2x lipat dari jumlah awal. Setelah container baru siap, container lama akan dimatikan. Anda bisa memantau proses update dengan perintah “watch docker ps”.
Kesimpulan
Docker Rollout memang memudahkan update service Docker Compose. Namun, keterbatasan kustomisasi dan fitur membuatnya kurang ideal untuk lingkungan kerja profesional. Meskipun begitu, Docker Rollout bisa menjadi asisten yang handal untuk project personal Anda.
Jika ada pertanyaan, jangan sungkan untuk berkomentar di bawah!