podman-compose

a script to run docker-compose.yml using podman

Github星跟蹤圖

Podman Compose

An implementation of docker-compose with podman backend.
The main objective of this project is to be able to run docker-compose.yml unmodified and rootless.
This project is aimed to provide drop-in replacement for docker-compose,
and it's very useful for certain cases because:

  • can run rootless
  • only depend on podman and Python3 and PyYAML
  • no daemon, no setup.
  • can be used by developers to run single-machine containerized stacks using single familiar YAML file

For production-like single-machine containerized environment consider

For the real thing (multi-node clusters) check any production
OpenShift/Kubernetes distribution like OKD.

NOTE

This project is still underdevelopment.

Installation

Install latest stable version from PyPI:

pip3 install podman-compose

pass --user to install inside regular user home without being root.

Or latest development version from GitHub:

pip3 install https://github.com/containers/podman-compose/archive/devel.tar.gz

or

curl -o /usr/local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/devel/podman_compose.py
chmod +x /usr/local/bin/podman-compose

or

curl -o ~/.local/bin/podman-compose https://raw.githubusercontent.com/containers/podman-compose/devel/podman_compose.py
chmod +x ~/.local/bin/podman-compose

or install from Fedora (starting from f31) repositories:

sudo dnf install podman-compose

Basic Usage

We have included fully functional sample stacks inside examples/ directory.

A quick example would be

cd examples/busybox
podman-compose --help
podman-compose up --help
podman-compose up

A more rich example can be found in examples/awx3
which have

  • A Postgres Database
  • RabbitMQ server
  • MemCached server
  • a django web server
  • a django tasks

When testing the AWX3 example, if you got errors just wait for db migrations to end.

Tests

Inside tests/ directory we have many useless docker-compose stacks
that are meant to test as much cases as we can to make sure we are compatible

How it works

The default mapping 1podfw creates a single pod and attach all containers to
its network namespace so that all containers talk via localhost.
For more information see docs/Mappings.md.

If you are running as root, you might use identity mapping.

主要指標

概覽
名稱與所有者containers/podman-compose
主編程語言Python
編程語言Python (語言數: 4)
平台
許可證GNU General Public License v2.0
所有者活动
創建於2019-03-04 08:52:30
推送於2025-07-07 14:30:09
最后一次提交
發布數13
最新版本名稱v1.5.0 (發布於 2025-07-07 17:13:00)
第一版名稱v0.1.5 (發布於 2019-09-03 18:42:58)
用户参与
星數5.6k
關注者數46
派生數530
提交數1.1k
已啟用問題?
問題數742
打開的問題數328
拉請求數359
打開的拉請求數14
關閉的拉請求數120
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?