Saya menggunakan Portainer untuk mengelola kontainer Docker, dan saya telah menerapkan sebuah stack bernama XYZ (terdiri dari 4 kontainer). Saya perlu membuat cadangan seluruh stack, dan seluruh stack harus dihentikan saat proses backup berlangsung. Bagaimana cara mengotomatisasi proses stop dan start seluruh stack?
Karena saya menggunakan Portainer Community Edition untuk mengelola container saya, saya tidak menemukan fitur yang berguna. Jadi, saya harus menghapus Immich dari Portainer dan menerapkannya kembali di Qnap Container Station. Proses selebihnya dilakukan menggunakan shell script dan snapshot penyimpanan Qnap. Script-script tersebut dijadwalkan berjalan melalui crontab. Berikut adalah script dan langkah-langkah yang terlibat:
1. Buat script untuk menghentikan stack Immich:
#!/bin/bash
#
# Menghentikan container untuk mengambil snapshot QNAP
#
# Set PATH agar binary docker QNAP ditemukan
export PATH=/share/ZFS530_DATA/.qpkg/container-station/bin:$PATH
export HOME=/root
# Opsional: gunakan path penuh untuk memastikan 100%
DOCKER_BIN=/share/ZFS530_DATA/.qpkg/container-station/bin/docker
# Hentikan semua container Immich
$DOCKER_BIN stop $($DOCKER_BIN ps -q --filter "name=Immich")
2. Buat script untuk memulai stack Immich:
#!/bin/bash
#
# Menghentikan container untuk mengambil snapshot QNAP
#
# Set PATH agar binary docker QNAP ditemukan
export PATH=/share/ZFS530_DATA/.qpkg/container-station/bin:$PATH
export HOME=/root
# Opsional: gunakan path penuh untuk memastikan 100%
DOCKER_BIN=/share/ZFS530_DATA/.qpkg/container-station/bin/docker
# Mulai semua container Immich
$DOCKER_BIN start $($DOCKER_BIN ps -a -q --filter "name=Immich")
Jika Anda perlu menambahkan bridge network ke container Immich-Server, agar dapat diakses melalui Cloudflare, tambahkan berikut ini di bagian bawah script start: