Надоело возиться с YAML в Докере, поэтому я написал свой микро-оркестратор на Go
Если у вас в проекте больше трех контейнеров, вы знаете эту боль. Открываешь docker-compose.yml, а там простыня на 200 строк. Хочешь добавить пятый инстанс воркера? Копируй и вставляй. Ошибся в отступе на два пробела? Твоя инфраструктура ломается.
Я Go-разработчик и в какой-то момент просто психанул. Зачем мне возиться со статичными конфигами, если у меня под рукой есть циклы, условия и нормальная типизация? В итоге за пару вечеров собрал Vessel — микро-оркестратор, который позволяет описывать окружение прямо в коде.
В чем профит:
Вместо того чтобы копипастить блоки в YAML, я пишу обычный цикл:
IDE сама подсказывает методы, компилятор ловит ошибки, а инфраструктура собирается как конструктор.
Что эта штука умеет сейчас:
- Сборка на лету. Делаю multi-stage билд прямо в рантайме. На выходе образы по 15 МБ, никакой лишней чепухи внутри.
- Умные зависимости. Использовал каналы и горутины. Бэкенд не ждет «на авось» по таймеру, а стартует ровно в ту миллисекунду, когда база данных подает сигнал о готовности.
- Нормальный TUI. Прикрутил спиннеры, чтобы в терминале было видно, что и как запускается параллельно, а не просто каша из логов.
Это не замена Кубернетесу и даже не полноценный конкурент Compose. Это просто удобный инструмент для тех, кто хочет управлять Docker-окружением через код, а не через текстовые простыни.
Код открыт, можно тыкать, критиковать и предлагать свое.
Гитхаб: https://github.com/krasilovalex/vessel