I'd be curious what failed to build under podman. I have been using podman as a replacement for docker for the last 3 years and haven't found any blocker. Sometimes you can't reuse a docker-compose file shared by a third party project straight away without adaptation but if you know the difference between docker and podman you can build and run anything that also run on docker.
So not a drop-in replacement then...
1. Most of the issues I had that forced me to adapt a docker-compose was because I was using podman rootless and most people build docker-compose file with docker running as root in mind. mostly to have access to privileged ports. I guess running podman under root would have solved this but one of the reason I switched to podman in the beginning was for the rootless capability. In a way this wasn't much different than modifying a deployment to work with docker in rootless mode.
2. part of the appeal of using podman is its compatibility with kubernetes yaml file so you tend to quickly switch away from docker-compose anyway. Also for self hosting, the systemd approach was more elegant, even before the quadlets support.
3. One would argue that docker-compose != docker/moby engine.
4. docker-compose has introduced breaking changes in its history which meant adapting your compose file or add flags at runtime such as `docker-compose disable-v2`
EDIT: adding points
...until the point when they resigned any notion of versioning. You can't have a breaking change if you don't promise a stable behavior, see? /s
Not many people noticed that the top-level
version "3.9"
has no effect anymore. "It is only informative", the current spec says. Your old docker-compose.yaml files spew errors as soon as they go out-of-sync with the master branch (classy!) of the spec repo.Of course, if you run rootless then there's no possibility to do so. :)
Yes! And it has a hard dependency on iptables, which I have removed from all my servers long ago in favor of nftables. Grrrrrr.
As far as I know, this was introduced with the new networking stack (netavark).
I'm also using nix flakes, to keep the setup reproducible.
If you want to get started, I can recommend the following:
1. Install nixos. That will only take a few minutes, and you end up with a system in which you have a "/etc/nixos/configuration.nix" file. Now you can edit the config file, run "nix-rebuild switch", and the changes have been applied. Every change results in a new entry in the bootloader menu, so you can always rollback.
2. Check out this great blog series: https://www.jjpdev.com/posts/home-router-nixos/ It helped me a lot.
3. Use https://search.nixos.org/options to search config options (the stuff in your config file).
Note: The blogpost still uses the classic way of managing network devices. I use Systemd, which I think is nicer and more flexible.
Any article out there on how to have windows + wsl2 + podman + vscode devcontainers working?
It's always easier to start with the bare minimum and build from there, and you will get a better understanding of the tools you're using.