Skip to main content

Simplify the usage of containers

Project description

sugar

Simplify the usage of containers.

You may be thinking, why do I need a new library that wrap-up docker-compose or podman-compose if they are already really simple to use?

Yes, they are simple to use, but if you have some other parameters to the compose command line, it could be very tedious to write them every time such as --env-file, --project-name, --file, etc.

So, in this case we could use something like a script or make, right?

Yes, and just for one project it would be good enough. But, if you maintain or collaborate a bunch of projects, it would be like a boiler plate.

Additionally, if you are maintaining some extra scripts in order to improve your containers stack, these scripts would be like a boilerplate as well.

So, the idea of this project is to organize your stack of containers, gathering some useful scripts and keeping this information centralized in a configuration file. So the command line would be very simple.

How to Install

$ pip install containers-sugar

Features

The commands from docker-compose available are:

  • build
  • config
  • create
  • down
  • events
  • exec
  • images
  • kill
  • logs
  • pause
  • port
  • ps
  • pull
  • push
  • restart
  • rm
  • run
  • start
  • stop
  • top
  • unpause
  • up
  • version

These commands are available in the main profile/plugin, so you don't need to specify any extra parameter to access them.

For extra commands, we are gathering them into a profile/plugin called ext, so you can access them using something like: sugar ext restart.

The current available ext commands are:

  • start -> alias for up
  • restart -> runs stop and up

How to use it

First you need to place the config file .sugar.yaml in the root of your project. This is an example of a configuration file:

version: 1.0
backend: docker compose
default:
  group: ${{ env.ENV }}
groups:
  group1:
    project-name: project1
    config-path:
      - containers/tests/group1/compose.yaml
    env-file: .env
    services:
      default: service1,service3
      available:
        - name: service1
        - name: service2
        - name: service3
  group2:
    project-name: null
    config-path: containers/tests/group2/compose.yaml
    env-file: .env
    services:
      available:
        - name: service1
        - name: service3

Some examples of how to use it:

  • build the defaults services (service1,service3) for group1: sugar build --group group1

  • build the all services (there is no default service defined) for group2: sugar build --group group2

  • build all services (ignore default) for group1: sugar build --group group1 --all

  • start the default services for group1: sugar ext start --group group1

  • restart all services (ignore defaults) for group1: sugar ext restart --group group1 --all

  • restart service1 and service2 for group1: sugar ext restart --group group1 --services service1,service2

NOTE: If you use: default: group: ${{ env.ENV }}, you don't need to give --group <GROUP_NAME>, except if you want a different group than the default one.

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

containers_sugar-1.14.2.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

containers_sugar-1.14.2-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file containers_sugar-1.14.2.tar.gz.

File metadata

  • Download URL: containers_sugar-1.14.2.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.15 Linux/6.8.0-1015-azure

File hashes

Hashes for containers_sugar-1.14.2.tar.gz
Algorithm Hash digest
SHA256 2e4b2796c2759f1453be7277590504321cef959f85a9adadc426481593d23b9d
MD5 35ea059700f3608863c12dd08426de3a
BLAKE2b-256 0e6192dd1d07b85298365cdd00beba58773ea5cc91e86e01a7c79a91ec2d7215

See more details on using hashes here.

Provenance

File details

Details for the file containers_sugar-1.14.2-py3-none-any.whl.

File metadata

  • Download URL: containers_sugar-1.14.2-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.10.15 Linux/6.8.0-1015-azure

File hashes

Hashes for containers_sugar-1.14.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94bfe62815d71a0f7041d5000aae358f1e25af9683f9ecdd27c44979da0e17e2
MD5 5f5dcf96eb56256f7baf87d44d446f63
BLAKE2b-256 d010e3ba2d0f3300dbec9d6cd404f43abd59c949be39c59885e304f24e47fb07

See more details on using hashes here.

Provenance

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