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?
I think compose is best used somewhere in between.
I like to have separate compose files for all my service “stacks”. Sometimes that’s a frontend, backend, and database. Other times it’s just a single container.
It’s all about how you want to organize things.
I’ve always heard the opposite advice - don’t put all your containers in one compose file. If you have to update an image for one app, wouldn’t you have to restart the entirety of your apps?
You can reference a single or multiple containers in a compose stack.
docker compose -f /path/to/compose.yml restart NameOfServiceInCompose
whoa, I never knew that. Great tip!
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters LXC Linux Containers NAT Network Address Translation Plex Brand of media server package VPS Virtual Private Server (opposed to shared hosting)
[Thread #217 for this sub, first seen 15th Oct 2023, 20:15] [FAQ] [Full list] [Contact] [Source code]
The best way is to use Podman’s Systemd integration.
This is what I use whenever I make my own services or am using a simple service with only one container. But I have yet to figure out how to convert a more complicated service like lemmy that already uses docker-compose, so I just use podman-docker and emulate docker-compose with podman. But that doesn’t get me any of the benefits of systemd and now my podman has a daemon, which defeats one of the main purposes of podman.
Just forget about podman-compose and use simple Quadlet container files with Systemd. That way it is not all in the same file, but Systemd handles all the inter-relations between the containers just fine.
Alternatively Podman also supports kubernetes configuration files, which is probably closer to what you have in mind, but I never tried that myself as the above is much simpler and better integrated with existing Systemd service files.