Skip to main content

Docker-compose package manager

Project description

Description

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.

Quick install

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

Installation

Helper Script

curl -fsSL https://raw.githubusercontent.com/sam-technesci/composer/main/install.sh -o get-composer.sh && sudo /bin/bash get-composer.sh

Manual

Install python39 and pip3. Then do: pip3 install --upgrade docker-composition

.deb Creation

Install sudo apt-get install python3-stdeb

Project setup

Using hatch as a tool to manage package: https://hatch.pypa.io/latest/intro/

hatch new composition

Publishing

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

Generating requirements

pip3 install pip-tools pip-compile requirements.in > requirements.txt

To install locally

pip3 install --upgrade docker-composition

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

docker_composition-1.0.5.tar.gz (9.6 kB view hashes)

Uploaded Source

Built Distribution

docker_composition-1.0.5-py2.py3-none-any.whl (14.7 kB view hashes)

Uploaded Python 2 Python 3

Supported by

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