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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

Details for the file docker_composition-1.0.5.tar.gz.

File metadata

  • Download URL: docker_composition-1.0.5.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.23.0

File hashes

Hashes for docker_composition-1.0.5.tar.gz
Algorithm Hash digest
SHA256 d4107f805f2cad3e0bb54fa6753406054fdd0fd63531f0392a1ab479db081a61
MD5 7a55fc8173550a1ae23baeb45d3f4119
BLAKE2b-256 5a8f28beb699b1b3a4ee42685e6f99cc1f991f1aeb7144fce4bf7e633837eb54

See more details on using hashes here.

File details

Details for the file docker_composition-1.0.5-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for docker_composition-1.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 ee424cd6b7e6d15066fcbcf7d2dcafc15d030d25cec432f688a464232f7c98e0
MD5 2f106a51a8a5ff776e29ed180d4e363e
BLAKE2b-256 ab387f8d112b7cddd93809fdc0d8d381f45f41f07dd38108766e4c6fad6eae48

See more details on using hashes here.

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