How do y’all manage all these Docker compose apps?
First I installed Jellyfin natively on Debian, which was nice because everything just worked with the normal package manager and systemd.
Then, Navidrome wasn’t in the repos, but it’s a simple Go binary and provides a systemd unit file, so that was not so bad just downloading a new binary every now and then.
Then… Immich came… and forced me to use Docker compose… :|
Now I’m looking at Frigate… and it also requires Docker compose… :|
Looking through the docs, looks like Jellyfin, Navidrome, Immich, and Frigate all require/support Docker compose…
At this point, I’m wondering if I should switch everything to Docker compose so I can keep everything straight.
But, how do folks manage this mess? Is there an analogue to apt update
, apt upgrade
, systemctl restart
, journalctl
for all these Docker compose apps? Or do I have to individually manage each app? I guess I could write a bash script… but… is this what other people do?
In the docker folder with the docker-compose.yml of whatever docker container you want to upgrade:
docker compose pull && docker compose up -d
As others have said, for large groups of containers it’s helpful to use Watchtower.
Immich in particular warns to backup your database before an upgrade. Also be on the lookout for breaking changes which require you to alter your docker-compose.yml file before an upgrade.
Oh and after upgrades to remove any dangling images which sometimes take up a lot of space:
docker image prune
Also if you want services to be interoperable, learn about docker networking now not later and remember for static IPs you must create a user defined bridge.
I think compose files are usually pinned to a version, or use a .env file that needs to be changed to update to a new version.
I personally don’t update very often; usually not until I’m forced to for some reason. I find that just checking the documentation for any upgrade/migration guides, and doing it manually is sufficient. I don’t expose this kind of stuff publicly; if I did, I’d probably update regularly.
Immich is a more touchy beast because it includes a mobile app and the mobile app and the docker container need to generally be either the same version, or within a few versions of one another. There was a while where I forgot to update the server for a while and the mobile app kept being updated on my phone and stopped backing up photos because it could no longer communicate with the server.
I don’t expose services to the outside world either, but I still enjoy keeping things up to date. Gives me something to do.