Skip to main content

Utility to render docker-compose files with different states

Project description

https://travis-ci.org/django-stars/telega-compose.svg?branch=master https://codecov.io/gh/django-stars/telega-compose/branch/master/graph/badge.svg https://badge.fury.io/py/telega-compose.svg

This is a wrapper on docker-compose, which extends compose file syntax to keep several configurations (states) of your services in one file, with similar to docker-compose file syntax using native YAML anchors and aliases.

How it works:

  • Render in-memory docker-compose file for required state from states file.

  • Call docker-compose app with rendered file (state) and apply required docker-compose command on it.

States file reference:

It’s a YAML file with two required sections: compose and states.

Section compose is regular docker-compose config excluding services section:

compose:
  version: '3.4'
  configs:
    my_config:
      file: ./my_config.txt
    my_other_config:
      external: true
  secrets:
    my_secret:
      file: ./my_secret.txt
    my_other_secret:
      external: true
  volumes:
    data:
    media:

Section states is a list of states with description of services section for each state:

states:
  live:
    services:
      backend: *backend_service
      database: *database_service
      webserver: *webserver_service

You can describe service in separate section or inside states section. Also, you can inherit early described service and override some parameters in place:

states:
  local:
    services:
      database: &database_local_service
        <<: *database_service
        ports:
          - "127.0.0.1:5432:5432"

The rest of the sections you can use for you own purposes. For example to configure logging for all services:

---
compose:
  ...

config:
  logging: &logging_config
    driver: "json-file"
    options:
      max-size: 50m

components:

  backend: &backend_service
    ...
    logging: *logging_config

  database: &database_service
    ...
    logging: *logging_config

  webserver: &webserver_service
    ...
    logging: *logging_config

states:

  live:
    services:
      backend: *backend_service
      database: *database_service
      webserver: *webserver_service

CLI usage:

tcompose [-h] [-f FILE] state [docker-compose parameters]

Positional arguments:

Optional arguments:

  • -h, –help - to show help message

  • -f FILE, –file FILE - path to states file, by default: states.yml

Examples:

tcompose local_dev config
tcompose live -f /path/to/my-custom-states.yml up -d
tcompose qa -f /path/to/states.yml --project-name acme up

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

telega-compose-0.0.2.tar.gz (4.9 kB view details)

Uploaded Source

File details

Details for the file telega-compose-0.0.2.tar.gz.

File metadata

File hashes

Hashes for telega-compose-0.0.2.tar.gz
Algorithm Hash digest
SHA256 cb28884cf89a6f119df88a39bd9cfb93d970dc6849019b5d8df1f5d0b46c263a
MD5 0e0dfcfe2538da6bb723eea42f0e9ece
BLAKE2b-256 522d62f5a977232cd10bcf0cedf2c471eb72da4647d20479914828b01108a5fa

See more details on using hashes here.

Supported by

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