Acutally, there are docker-compose primitives that solve just that (restart: always/on-failure and depends-on: servicename.
I think it mostly comes down to what layer of abstraction you like working at.
I think it mostly comes down to what layer of abstraction you like working at.
But it doesn’t have system-level dependencies. For example, in systemd I can wait for a network interface to be up and have an IP assigned by DHCP. As far as I am aware, docker compose knows about the docker network and its own containers, but not the system more broadly.
Also, you will likely want it to run for a long time, so something has to trigger the docker-compose process to start and restart it. You might want it to restart in case the OOM killer knocks it over. That daemom stuff is what systemd is good for.