HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
containers
podman-compose
Python2019–2026
containers / podman-compose

podman-compose

a script to run docker-compose.yml using podman

32Distinct people
35Mentions
0Explicit recommenders
6.3KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

a script to run docker-compose.yml using podman

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year35 dated mentions

Observed mentions: 2019-09-12 05:00:24 UTC to 2026-07-03 08:09:47 UTC.

024682019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments20192020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 8 mentions; 0 submissions, 8 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC716
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC404
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC707
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC000
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC404
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC101
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC808
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC404

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Podman Compose An implementation of Compose Spec with Podman backend. This project focuses on: rootless daemon-less process model, we directly execute podman, no running daemon. This project only depends on: podman a podman network backend with DNS name resolution available. This allows containers to be able to resolve each other if they are on the same network. either: podman dnsname plugin with CNI network backend: It is usually found in the podman-plugins or podman-dnsname distro packages, those packages are not pulled by default and you need to install them. or: netavark/aardvark-dns: Both are usually installed on new installations of podman 4. Python 3.9 or newer PyYAML python-dotenv And it's formed as a single Python file script that you can drop into your PATH and run. References: spec.md docker-compose compose-file-v3 docker-compose compose-file-v2 Alternatives As in this article you can setup a podman.socket and use unmodified docker-compose that talks to that socket but in this case you lose the process-model (ex. docker-compose build will send a possibly large context tarball to the daemon) For production-like single-machine containerized environment consider k3s | k3s github MiniKube For the real thing (multi-node clusters) check any production OpenShift/Kubernetes distribution like OKD. Versions If you have legacy version of podman (before 3.1.0) you might need to stick with legacy podman-compose 0.1.x branch. The legacy branch 0.1.x uses mappings and workarounds to compensate for rootless limitations. Modern podman versions (>=3.4) do not have those limitations, and thus you can use latest and stable 1.x branch. If you are upgrading from podman-compose version 0.1.x then we no longer have global option -t to set mapping type like hostnet. If you desire that behavior, pass it the standard way like network_mode: host in the YAML. Installation Pip Install the latest stable version from PyPI: pip3 install podman-compose pass --user to install inside a regular user's home without being root. Or latest development version from GitHub: pip3 install https://github.com/containers/podman-compose/archive/main.tar.gz Package repositories podman-compose is available from the following package repositories: Debian: sudo apt install podman-compose Fedora (starting from f31) repositories: sudo dnf install podman-compose Homebrew: brew install podman-compose Generate binary using docker/podman locally This script will download the repo, generate the binary using this Dockerfile, and place the binary in the directory where you called this script. sh -c "$(curl -sSL https://raw.githubusercontent.com/containers/podman-compose/main/scripts/download_and_build_podman-compose.sh)" Manual curl -o /usr/local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/main/podman_compose.py chmod +x /usr/local/bin/podman-compose or inside your home curl -o ~/.local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/main/podman_compose.py chmod +x ~/.local/bin/podman-compose Tests podman-compose is tested via unit and integration tests. Unit tests can be run via the following: python3 -m unittest discover tests/unit Integration tests can be run via the following: python3 -m unittest discover tests/integration Contributing guide If you are a user or a developer and want to contribute please check the CONTRIBUTING section
Read the full README on GitHub

What Hacker News says

35 sources
How my mindset changed : - What's Docker? - wow Docker is so convenient - hmmm all that convenience is creating new problems - is Docker really open? - What's Podman? - Ugh Podman is a great idea but does not work - Is Podman working better now? - ... kinda, just for testing on my machine - wow... Podman works just as well as Docker in 99.99% of my cases ... so yes except for the last .01% (e.g. rather niche https://github.com/containers/podman-compose/issues/792 ) is now my default container engine.
In Podman v6.0.0
I've used podman for number of years, possibly too long to really give a good comparison but for the most part it is exactly s/docker/podman. Can't think of anything I've read on the internet that I couldn't just copy the tail of and stick podman in front of it. Any run/build/inspect/volumes/secrets/etc all work like for like by design afaik. There may be additional flags on podmans end for other things it supports (eg: selinux labels). EDIT: Actually the biggest might be that containers often need a fully qualified name, so instead of `run name/container:latest` you need `run docker.io/name/container:latest`. You can configure default search domains though. The biggest thing people will (did?) miss is docker-compose. There was a third party `podman-compose` but now it seems that's actually been folded under the official umbrella, along w
Read the rest
ith a `podman compose` command that will "Run compose workloads via an external provider such as docker-compose or podman-compose" so even that gap might be closed up now. Honestly I swapped to just scripting it myself when I swapped to podman - before even the third party podman compose existed, either using sh, .kube files or now systemd units. If you're used to using big 5-10+ container compose files you might have some friction there, might not. There are differences internally, ex: docker primarily runs as root and has a different networking stack compared to podman, but for most usage on a dev machine it doesn't matter, and matters maybe in a deployment, maybe not. Unsolicited opinion, I originally found Podman much less intrusive, dockers iptable muckery always rubbed me the wrong way, so it defaulting to userspace and just letting me do any nftable routing I wanted felt much nicer. It also just fees less icky when using it where its default or configuration options were less funnel-you-into-docker.com. https://github.com/containers/podman-compose
In Docker.how – Docker command cheat sheet
It works but it's not a real drop-in replacement in my experience. I have issues such as [1] where Podman compose seems to leave containers in a dirty state and subsequent `podman compose up` generate odd errors like: > Error: creating container storage: the container name "..." is already in use by [hash]. You have to remove that container to be able to reuse that name: that name is already in use, or use --replace to instruct Podman to do so. And then you try to run `podman compose up --replace` except that's not a recognized argument, so eventually you figure out that you have to run `podman compose down` to clean whatever state is causing issues. I find that I have to do that every time I CTRL+C quit out of `podman compose up` (even though I always let it clean up and then exit on its own), which is a hassle. I'm considering going bac
Read the rest
In Podman Desktop celebrates 3M downloads
Which compose? Podman-compose [1] wasn't fully up to date with the latest compose-spec [2] the last time I checked it. However, the docker-compose v2 [3] (the one in Go, not Python [4]) is compatible with the Podman engine [5] and works like a charm for me. I have also had no issues with networking, permissions or volumes while running as non-root user. Are you simply facing issues setting it up, or are you hitting some bugs or missing features? [1] https://github.com/containers/podman-compose [2] https://compose-spec.io/ [3] https://github.com/docker/compose [4] https://github.com/docker/compose/tree/v1 [5] https://www.devopsroles.com/how-to-use-docker-compose-with-p...
In I ditched Docker for Podman
I tried Podman on my messing around VPS but quickly reverted to rootless Docker. The straw that broke the camels back was a bug in `podman compose` that funnily enough was fixed two hours ago[1]; if `service1` has a `depends_on` on `service2`, bringing down `service1` will unconditionally bring down `service2`, even if other services also depend on it. So if two separate services depend on a database, killing one of them will kill the database too. Another incompatibility with Docker I experienced was raised in 2020 and fixed a few months ago[2]; you couldn't pass URLs to `build:` to automatically pull and build images. The patch for this turned out to be a few lines long. I'm sure Podman will be great once all of these bugs are ironed out, but for me, it's not quite there yet. [1]: https://github.com/containers/podman-compose/pull/1283 [
Read the rest
In Using Podman, Compose and BuildKit
Which features specifically? I can't find a conclusive list anywhere. Other than searching GH issues for bugs like: https://github.com/containers/podman-compose/issues/655#issu... RE debugging spam, the only thing I can think you're referring to can be turned off by setting `export PODMAN_COMPOSE_WARNING_LOGS=false`. I'm also curious how it doesn't adhere to the spec. I don't doubt you, but it'd be cool if there was a test suite or audit tool that could document that.
In Fly To Podman: a script that will help you to migrate from Docker
Protip: if you want to use Podman (or Podman Desktop) with Docker Compose compatibility, you'll have a better time installing podman-compose [1] and setting up your env like so: alias docker=podman # If you want to still use Docker Compose # export PODMAN_COMPOSE_PROVIDER=docker-compose # On macOS: `brew install podman-compose` export PODMAN_COMPOSE_PROVIDER=podman-compose export PODMAN_COMPOSE_WARNING_LOGS=false Most of my initial issues transitioning to Podman were actually just Docker (and Docker Desktop) issues. Quadlets are great and Podman has a tool called podlet [2] for converting Docker Compose files to Quadlets. I prefer using a tool like kompose [3] to turn my Docker Compose files into Kubernetes manifests. Then I can use Podman's Kubernetes integration (with some tweaks for port forwarding [4]) to replace Do
Read the rest
In Fly To Podman: a script that will help you to migrate from Docker
I already was defining my infrastructure with docker-compose.yml files, and found out that podman-compose has a poorly documented feature that generates systemd units. It doesn't use the now-deprecated podman feature, it writes the unit files itself, and I find the process much smoother than the podman feature anyway. To enable the feature: $ podman-compose systemd -a create-unit To register a systemd unit: $ podman-compose systemd -a register $ systemctl --user enable --now "podman-compose@$PROJECT_NAME" Updating looks like this: $ podman-compose pull $ systemctl --user restart "podman-compose@$PROJECT_NAME" ($PROJECT_NAME is usually the directory name.) Source code for the feature is here if you care to inspect it: https://github.com/containers/podman-compose/blob/f6dbce3618... Admittedly, I'm still on podman 4.3.
Read the rest
1, but I don't see any reason why this would stop working in later versions of podman.
In Exploring Podman: A More Secure Docker Alternative

Showing the 15 most recent of 35 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.