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 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 11:34:28 AM 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

4 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

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.