Python запуск контейнеров.

miniboss — это приложение Python для мгновенного запуска набора взаимозависимых служб докеров, а также управления состоянием приложений с помощью хуков рабочего цикла.

Почему не docker-compose?

Прежде всего, старый добрый Python вместо YAML. docker-compose находится в yaml-as-service-description, что означает, что выход за пределы статического описания набора функций и требует шаблонов или какого-либо сценария работы. С тем же успехом можно было бы использовать полноценный язык программирования, пытаясь сделать простые вещи. Еще одна вещь, которой очень не хватает в docker-compose, — это хуки жизненного цикла, то есть механизм, с помощью которого сценарии могут выполняться при изменении состояния контейнера.

Установка
miniboss на PyPi; вы можете установить его следующим образом:

pip install miniboss

Вот очень простой пример использования:

#! /usr/bin/env python3
import miniboss

miniboss.group_name('readme-demo')

class Database(miniboss.Service):
    name = "appdb"
    image = "postgres:10.6"
    env = {"POSTGRES_PASSWORD": "dbpwd",
           "POSTGRES_USER": "dbuser",
           "POSTGRES_DB": "appdb" }
    ports = {5432: 5433}

class Application(miniboss.Service):
    name = "python-todo"
    image = "afroisalreadyin/python-todo:0.0.1"
    env = {"DB_URI": "postgresql://dbuser:dbpwd@appdb:5432/appdb"}
    dependencies = ["appdb"]
    ports = {8080: 8080}
    stop_signal = "SIGINT"

if __name__ == "__main__":
    miniboss.cli()

Подробнее: https://github.com/afroisalreadyinu/miniboss

Ответить