Still very much in alpha. But a package manager similar to that of helm but for docker-compose applications.
Handles sub-applications and values.yaml files with templates similar to that used for kubernetes.yaml files.
To start you need three files (see examples here: https://github.com/sam-technesci/composer/tree/main/examples):
app.yaml
template.yaml
values.yaml
The templating language used is Jinja2 and you substitute variables from your values.yaml(s) into the template.
cd examples/basic_application && composer install
See the README.md at examples/basic_application/README.md
for a walk-through.
Defaults to using values.yaml in the same directory.
To view your template before installing it you can do composer template
or you can save a template with composer template > docker-compose.yaml
For more commands do: composer --help
curl -fsSL https://raw.githubusercontent.com/sam-technesci/composer/main/install.sh -o get-composer.sh && sudo /bin/bash get-composer.sh
Install python39 and pip3.
Then do:
pip3 install --upgrade docker-composition
Install
sudo apt-get install python3-stdeb
Using hatch as a tool to manage package: https://hatch.pypa.io/latest/intro/
hatch new composition
Ensured the pyproject.toml
looked like this:
[build-system]
requires = [
"hatchling>=1.7.0",
]
build-backend = "hatchling.build"
[project]
name = "docker-composition"
description = "Docker-compose package manager"
readme = "README.md"
license = ""
authors = [
{ name = "sam", email = "sam@fake.com" },
]
dependencies = [
"humanize",
"petname",
"PyYAML",
"Jinja2",
"click"
]
dynamic = [
"version",
]
[project.scripts]
composer = "composition.composer:entrypoint"
[project.urls]
Homepage = "https://github.com/sam-technesci/composer"
[tool.hatch.version]
path = "composition/__init__.py"
[tool.hatch.build.targets.sdist]
include = [
"/composition",
]
Note: remember to update __version__.py
Then run:
sudo hatch build && sudo hatch publish
pip3 install pip-tools
pip-compile requirements.in > requirements.txt
pip3 install --upgrade docker-composition