Проблема: Наша система состоит из множества различных сервисов. С таким количеством приложений, использующих так много разных технологий, нам нужен был способ, чтобы любой новый разработчик мог взять и работать над любым из наших приложений практически без дополнительного времени на раскрутку.

Решение: используя docker и docker-compose, многие приложения нашего проекта могут быть загружены, разработаны, протестированы и развернуты любым новым разработчиком, поскольку каждая задача использует одну и ту же знакомую запись. Общей зависимостью между всеми нашими технологиями (ruby, python, nodeJS, shell и другими) является терминал shell, поэтому мы решили использовать сценарии shell в качестве общих точек входа. Все наши сценарии shell находятся в Linux, потому что мы развертываем в Linux, но я думаю, что использование контейнеров Window с powershell решит те же проблемы.

Между этими shell сценариями и Dockerfile и docker-compose.yml мы в итоге сформулировали «шаблон» для каждого из наших приложений. Будем надеяться, что этот шаблон может оказаться полезным для других, или другие могут помочь улучшить его, поэтому запуск новых приложений не означает каждый раз заново изобретать колесо.

Вот шаблон:



Я объясню больше о мыслительном процессе, которым руководствовался этот шаблон, в этом отдельном посте: