Declarative Configuration Management Tool for Docker Compose.
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
Kompozit
🚧 This tool is currently under development!
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 --help
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 'komposition.yaml'. (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 ⚙️
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 .
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file kompozit-0.2.0b0.tar.gz.
File metadata
- Download URL: kompozit-0.2.0b0.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad01bcc80f4837334f71b9194bb19d2c590f075b0db015146b68a975a706b327
|
|
| MD5 |
159903a9e145e294e7e3625c104c52cc
|
|
| BLAKE2b-256 |
4cc029f0e5f937858975fa4b889014d669d9752199c7e071912ac874e044ed15
|