Skip to content

asmb123/sugar

This branch is up to date with osl-incubator/sugar:main.

Folders and files

NameName
Last commit message
Last commit date
Mar 18, 2025
Dec 13, 2023
Mar 3, 2025
Mar 3, 2025
Mar 12, 2025
Mar 7, 2025
Sep 27, 2024
Mar 3, 2025
Jan 19, 2023
Mar 3, 2025
Nov 29, 2024
May 7, 2024
Feb 29, 2024
May 7, 2024
Mar 3, 2025
Sep 27, 2024
Jan 19, 2023
Mar 3, 2025
Mar 3, 2025
Mar 3, 2025
Jan 4, 2024
Oct 17, 2024
Mar 3, 2025

Repository files navigation

Sugar

CI Python Versions Package Version License Discord

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:

backend: compose
defaults:
  profile: ${{ env.ENV }}
profiles:
  profile1:
    project-name: project1
    config-path:
      - containers/tests/profile1/compose.yaml
    env-file: .env
    services:
      default: service1,service3
      available:
        - name: service1
        - name: service2
        - name: service3
  profile2:
    project-name: null
    config-path: containers/tests/profile2/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 profile1: sugar build --profile profile1

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

  • build all services (ignore default) for profile1: sugar build --profile profile1 --all

  • start the default services for profile1: sugar ext start --profile profile1

  • restart all services (ignore defaults) for profile1: sugar ext restart --profile profile1 --all

  • restart service1 and service2 for profile1: sugar ext restart --profile profile1 --services service1,service2

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

About

Simplify the usage of containers

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%