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