Half of the point of podman was to avoid the need to run things with root.
Docker compose expects me to have a server running. While I technically could run "podman system service" and configure docker compose to point at a non-standard socket or port in order to run it I would really prefer not to have that kind of headache just to run a script.
Docker compose was also written by docker and exhibits similar levels of shoddiness to docker. The accumulation of bad design decisions by docker is, indeed, why podman exists in the first place. With a little bit of love podman compose could easily surpass docker compose.
FWIW I actually tend to run podman compose inside a podman container. This is so I can containerize the integration tests which orchestrate the app. It's a useful pattern - one I think should be a lot more widely used for several reasons. The systemd service wouldn't work in this context.
I could maybe use some entrypoint magic to run a server when the container starts just so I can use docker compose but still...eww.
Running a podman systemd service might suffice if it was something that could be installed with a snap of two fingers on every environment but if it means fscking around with service files it's definitely not something I'd want to add to a "set up a development environment" README.
I see, interesting.
I guess you are saying that systemd service wouldn't work because it's not available inside the container.
FWIW it's possible to run a rootless podman container with a working systemd inside the container. I've near tried running podman in podman using systemd though.
Is it? I think Podman only works with "docker-compose" (the Python-based tool that can be installed separately from Docker, which Podman is compatible with, which is now deprecated) as opposed to "docker compose" (the Golang-based plugin which is integrated into Docker Engine, which I think Podman is not (yet?) compatible with).
Would love to be proven wrong, as I ended up down quite a rabbit hole with this topic somewhat recently.
The Golang version, aka. Compose v2 can also be used standalone (they even have prebuilt binaries in their GitHub repository) and is compatible with Podman. Behind the scenes both Compose v1 and v2 use the Docker API which is also implemented by Podman (`podman system service`).
In my experience they work fine together most of the time, I have ran into compatibility bugs sometimes, though things seem to be steadily improving.