For the last two years, I’ve been treating compose files as individual runners for individual programs.
Then I brainstormed the concept of having one singular docker-compose file that writes out every single running container on my system… (that can use compose), each install starts at the same root directory and volumes branch out from there.
Then I find out, this is how most people use compose. One compose file, with volumes and directories branching out from wherever ./ is called.
THEN I FIND OUT… that most people that discover this move their installations to podman because compose works on different versions per app and calling those versions breaks the concept of having one singular docker-compose.yml file and podman doesn’t need a version for compose files.
Is there some meta for the best way to handle these apps collectively?
That’s what I do. I always thought I was doing it “wrong” but it just made sense to me. I can also just up/down/etc… compose files to individually pull new images, test things, disable a service, and apply config updates without affecting another container at all.
I even keep my docker config files in a seperate directory so I can backup the docker composes in a second over the network.
I started by using a single mariaDB instance with multiple databases, but now I see the same benefits from moving to one database container per compose file that needs it to make it even more flexible so I don’t need to start up mariadb and redis before all of my containers.
File permission problems? Down the compose that needs it, fix it, re-up it without losing any uptime for other services and never having to use docker commands kludged together.