ссылки с best practices, потому что не хочется изобретать велосипед на ровном месте:
Есть приложение, сотоящее из микросервисов. Каждый сервис в своём контейнере. У каждого сервиса своя репа. Всё работает отлично, билдится, развёртывается в гугл клауд и т.д.
Сейчас хочу улучшить развёртывание локальных энвайрнментов, потому что хоть и используется docker-compose, но клонить все модули надо пока что вручную. Джуниоры постоянно ломают себе машины и потом тратят по часу на развёртывание приложения на локалке. Это - не оптимально.
Вижу 2 пути, но оба не нравятся:
1. Одна репа с composer.json которая ставится на локальную машину и после запуска композера стягивает все нужные репы и складывает по местам. Особенность работы композера в том, что он тянет репы с .git, так что девы смогут сразу пушить свои изменения. Минус в том, что каждая репа может обновиться двумя способами: через composer update или git pull в ней.
2. Использовать git submodules. Плюс в том, что это нативный гит, нет сторонних либ. Минус - всё равно придётся писать отдельный скрипт, который будет разворачивать приложение.
Кто сталкивался с похожей проблемой и к какому решению пришёл?
Отвечая на свой же вопрос, если кому-то интересно: git submodules штука рабочая, но в меняет рабочий процесс. Composer - работает лучше, но не идеально. Решил рискнуть и попробовать относительно молодую утилиту - meta. Пока полет нормальный, приложение разворачивается в три команды на локальной машине, девелоперы довольны. https://github.com/mateodelnorte/meta
Обсуждают сегодня