Skip to main content

A script to run docker-compose.yml using podman

Project description

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
  • no daemon, no setup.
  • can be used by developers to run single-machine containerized stacks using single familiar YAML file

This project only depend on:

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

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.x) 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

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.

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-0.1.11.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

podman_compose-0.1.11-py2.py3-none-any.whl (28.3 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: podman-compose-0.1.11.tar.gz
  • Upload date:
  • Size: 21.8 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-0.1.11.tar.gz
Algorithm Hash digest
SHA256 7dd42a4103f5e35ba3c7cf19c8f08c0c8ea1462ce6e52b06ac115fb2b1fcc727
MD5 d91cd571fad203f3084878b6bc1ee0ac
BLAKE2b-256 e26b876eebdadd528061344843450f42ca341f71f26ab491c09b5b6d320664ff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: podman_compose-0.1.11-py2.py3-none-any.whl
  • Upload date:
  • Size: 28.3 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-0.1.11-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 35c6c560294ae5d4b5155127adcc031ca854693c504dae53a8b014abaa7387f0
MD5 efe6517d19a057332d210e48f6c55cf3
BLAKE2b-256 5a7c7f5f0787daa4f0a58152d075feabdb88d2376f3cddea3253d14e941f4bca

See more details on using hashes here.

Supported by

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