Skip to main content

A script to run docker-compose.yml using podman

Project description

Podman Compose

An implementation of Compose Spec with Podman backend. This project focus on:

  • rootless
  • daemon-less process model, we directly execute podman, no running daemon.

This project only depend on:

And it's formed as a single python file script that you can drop into your PATH and run.

References:

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

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.

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 inside your home

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. There is also AWX 17.1.0

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

podman-compose-1.0.3.tar.gz (21.4 kB view details)

Uploaded Source

Built Distribution

podman_compose-1.0.3-py2.py3-none-any.whl (28.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file podman-compose-1.0.3.tar.gz.

File metadata

  • Download URL: podman-compose-1.0.3.tar.gz
  • Upload date:
  • Size: 21.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for podman-compose-1.0.3.tar.gz
Algorithm Hash digest
SHA256 9c9fe8249136e45257662272ade33760613e2d9ca6153269e1e970400ea14675
MD5 d64daedeb75227990aed8485490ca910
BLAKE2b-256 c7aa0997e5e387822e80fb19627b2d4378db065a603c4d339ae28440a8104846

See more details on using hashes here.

Provenance

File details

Details for the file podman_compose-1.0.3-py2.py3-none-any.whl.

File metadata

  • Download URL: podman_compose-1.0.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for podman_compose-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aef75947d2416a5c218cca0b88bdf86cc2be890f41f77aa3146493a3d0510180
MD5 31d1f308d20ac263b734c309324d6cac
BLAKE2b-256 a1d24863a7632e8d9d539fee8ed450f18521f53e90834df058003b5683baa39b

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page