Мы разрабатываем небольшой проект, состоящий из mongodb, java backend и front-end на основе express-js. Мы выбрали docker-compose
как инструмент развертывания для всех, кроме производства, и до сих пор это было довольно хорошо с одним исключением.Управление файлами переопределения докеров
В настоящее время мы используем его для:
- работает локальный кластер Dev;
- тесты интеграции (с некоторыми настройками и дополнительными зависимостями);
- подготовка среды для тестирования нагрузки (с большим количеством настроек);
- работающая промежуточная среда/демонстрационная среда на отдельной облачной машине.
Чтобы обработать все эти различные твики на окружающую среду мы выведенные набор докеров-Compose файлов: docker-compose.yml
, d-c.override.yml
, d-c.test.yml
, d-c.load.yml
и d-c.demo.yml
(docker-compose
заменен d-c
для краткости).
Это заставляет нас использовать чрезмерно длинные вызовы командной строки, чтобы делать что-либо, кроме основных задач. Например:
docker-compose -f docker-compose.yml -f docker-compose.test.yml up -d --build
docker-compose -f docker-compose.yml -f docker-compose.test.yml exec test_container ./do_tests.sh
И все идет хуже.
До сих пор мы получили несколько идей об улучшении, что:
- использовать полный докер-компоновать файлы вместо частичного копить печатать - но дополнительное обслуживание при изменении структуры приложения/вводятся дополнительные параметры;
- (вариант первого) использует
extends
для обслуживания и сводит к минимуму копию-вставку (но добавляет дополнительную сложность); - хранить все эти длинные команды в
Makefile
(или сценарии bash). Простота использования, но он чувствует себя как сложная сложность под ковриком; - (вариант первого) разрабатывает плагин для создания докеры/собственного инструментария - может быть более явным в обработке наших потребностей, но в дополнение к сложности обслуживания и развертывания.
Все эти идеи имеют свои недостатки - интересно, какие правильные решения для этого и какие инструменты уже существуют.
То же самое, мы разделили их на отдельные папки. Держите его простым;) cd stage/docker-compose up :-) – opHASnoNAME