3 ms·
You haven't necessarily gained anything by going to managing standalone apps individually, though. You've removed the unifying layer, but you're now having to k
by kQq9oHeAz6wLLS 2y ago
You haven't necessarily gained anything by going to managing standalone apps individually, though. You've removed the unifying layer, but you're now having to keep up with the app versions and upgrade them individually by hand instead of letting the unifying layer handle it.
- BrandoElFollito 2y agoIf you use docker + watchtower all this is done automatically
- doubled112 2y agoI don’t use Watchtower, but a script that takes a btrfs snapshot before doing a docker compose pull, then docker compose up. Same idea, just safer and fewer surprises.
- sach1 2y agoThat's nice and simple, do you have a shareable version of this script or some advice on btrfs pointers/pitfalls?
- doubled112 2y agoIt's really just those three steps in a loop, nothing fancy SHOT_TIME="$(date +'%Y-%m-%d_%H-%M')" for dir in /docker/* do cd $dir; btrfs subvolume snapshot "${dir}" "/docker/.snapshots/$(basename $dir)-${SHOT_TIME}" docker compose pull --quiet docker compose up -d done I mount a btrfs subvolume at /docker, and create a .snapshots subvolume inside. Each subvolume is an app and its dependencies, you want everything snapshotted as one. This is probably the biggest pitfall, if you don't take that snapshot of all the pieces. /docker |--> .snapshots |--> app_one-2024-08-28_12-34 |--> app_one |--> compose.yaml |--> volumes |--> app_one-config |--> app_one-db |--> app_two |--> compose.yaml |--> volumes |--> app_two-config |--> app_two-db
- doubled112 2y agoI gained working music and RSS that week.