This project has been archived by its maintainers, and is no longer receiving any updates.
Kompozit
ℹ Mostly likely you may want to use Use multiple Compose files in Docker Compose itself.
Declarative Configuration Management Tool for Docker Compose.
Like kustomize.io, but for Docker Compose.
Features
Kompozit simplifies complex Docker Compose setups using declarative overlays, supporting:
patchesJSON6902: Precise modifications with JSON Merge Patch.patchesStrategicMerge: Flexible hierarchical changes with Strategic Merge Patch.
Resources
- 📖 Documentation
- 🛠️ Examples
But Why...? 🤔
There are scenarios where you might need different Docker Compose configurations for the same application on different machines.
- For example, I use slightly different configurations for the Traefik reverse proxy when managing my public WordPress site versus my home server. Instead of maintaining multiple, slightly different
docker-compose.ymlfiles for the same app, you can use kompozit to simplify and manage these variations efficiently.
Additionally, kompozit allows you to combine multiple docker-compose.yml files into a single stack.
- For instance, you can keep a generic
docker-compose.ymlfor PostgreSQL in a central location and customize it for different stacks in other locations as needed.
Installation 💻
PyPi
python -m pip install kompozit
kompozit -h
usage: kompozit [-h] [-b BUILD_PATH] [-o OUTPUT_DIR] [-v]
Declarative Configuration Management Tool for Docker Compose.
options:
-h, --help show this help message and exit
-b, --build BUILD_PATH
Path to a directory containing 'kompozition.yaml' or 'kompozition.yml'. (default: .)
-o, --output-dir OUTPUT_DIR
Directory to save the generated Docker Compose files. (default: None)
-v, --version Show kompozit version
Docker
docker pull veerendra2/kompozit
Usage Examples ⚙️
git clone git@github.com:veerendra2/kompozit.git
cd kompozit
python -m pip install .
kompozit --build ./examples/overlay
...
# inside docker
docker pull kompozit:latest
docker run -it --rm -v ./examples:/examples kompozit:latest -b /examples/overlay
Local Development 🔧
git clone git@github.com:veerendra2/kompozit.git
cd kompozit
python -m venv venv
source venv/bin/activate
pip install -e .
Metadata
Release files for kompozit 0.2.1b0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kompozit-0.2.1b0.tar.gz | 9.2 kB | Details |
Release files / kompozit-0.2.1b0.tar.gz
| Download URL | kompozit-0.2.1b0.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2398d706455b1ef70b9594b36a74c22db90c4e7112e3819ee57546547667888a
|
|
BLAKE2b-256 checksum How to use checksums |
ce810101df1706f38c5dd996d47288e6e20e259684e27c010132d01a92f0ef9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|