Break up Docker-Compose into Multiple Services
Proposal
Replace docker-compose with docker and systemd unit files.
Motivation
I would like to replace Emby with Plex, which begins to open up the can of worms on how to make HomeLabOS more configurable/modular. This could be handled by making heavy use of Jinja in the docker-compose.yml
template, but I suspect that it will make it difficult to debug issues or to add new services.
Solution
Instead of using docker-compose to manage dependencies, we can use SystemD Unit files to manage dependencies. CoreOS has been advocating this approach. SystemD can also specify dependencies
One advantage is that each service can become it's own isolated ansible rule, and adding new services shouldn't have any affect on other services.
./roles/pihole
├── files
│ └── Dockerfile
├── tasks
│ └── main.yml
└── templates
└── homelabos-pihole.service
I'm looking for any thoughts or alternatives on this idea.