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?

  • Snot Flickerman@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    edit-2
    15 hours ago

    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.

    • sobchak@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      13 hours ago

      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.

      • Snot Flickerman@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        3
        arrow-down
        1
        ·
        edit-2
        13 hours ago

        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.