a script to run docker-compose.yml using podman
Go to file
Radoslaw Smigielski b3090c3c3a Mode Python installation and test deps to requirement files
Installation with setup.py fails on missing yaml package, which should
be installed by "install_requires" but this also does not work because
podman_compose.__version__ also needs yaml.
Put all the Python dependencies into separate files:
    - requirements.txt
    - test-requirements.txt
2021-04-29 19:19:14 +03:00
docs add docs directory 2019-09-03 00:19:41 +03:00
examples switch example to awx3 2019-06-17 15:58:41 +03:00
scripts update readme and no arguments print help 2019-09-03 00:19:07 +03:00
tests Add support for --build-arg option 2020-04-22 14:31:00 +03:00
.gitignore Python packaging 2019-08-21 22:45:53 +02:00
.pylintrc apply formating and add pylintrc 2019-03-23 21:42:04 +02:00
CODE-OF-CONDUCT.md Add Code of Conduct 2020-02-09 01:23:49 +02:00
CONTRIBUTING.md Add exec support 2021-04-29 19:10:55 +03:00
LICENSE Initial commit 2019-03-04 10:52:30 +02:00
podman_compose.py Support annotations 2021-04-29 19:18:29 +03:00
README.md Add Security Policy 2020-05-09 17:54:44 -04:00
requirements.txt Mode Python installation and test deps to requirement files 2021-04-29 19:19:14 +03:00
SECURITY.md Add Security Policy 2020-05-09 17:54:44 -04:00
setup.cfg Python packaging 2019-08-21 22:45:53 +02:00
setup.py Mode Python installation and test deps to requirement files 2021-04-29 19:19:14 +03:00
test-requirements.txt Mode Python installation and test deps to requirement files 2021-04-29 19:19:14 +03:00

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.