Docker Compose: Должен ли я иметь несколько файлов docker -compose? - PullRequest
3 голосов
/ 13 июля 2020

Сейчас у меня около 20 контейнеров в одном файле docker -compose.yml. Не все контейнеры связаны, но он был настроен таким образом, чтобы я мог просто запустить docker-compose up один раз, чтобы запустить все контейнеры.

Должен ли я разбивать его на несколько docker -compose файлы (например, одно приложение на файл docker -compose, который может включать несколько контейнеров, таких как интерфейс + база данных)? Есть ли какие-либо существенные недостатки в том, что все ваши контейнеры находятся в одном огромном файле docker -compose?

Ответы [ 2 ]

0 голосов
/ 17 августа 2020

На моем текущем проекте у меня действительно была очень похожая задача. Это навело меня на мысль написать небольшой сценарий, который я назвал docker-compose-profile (или сокращенно: dcp). Я опубликовал это вчера на GitLab как docker -compose-profile . Итак, вкратце: теперь я могу запустить несколько предопределенных профилей docker -compose с помощью команды типа dcp -p some-services "up -d". Профиль может содержать подмножество всех определенных услуг в вашем docker.compose.yml. С помощью этого механизма было бы легко запустить несколько наборов служб, определенных отдельно в dcp.yml. Не стесняйтесь опробовать его и дать несколько отзывов или предложений по дальнейшим улучшениям.

Чтобы ответить на ваш вопрос ... Если все службы принадлежат одному проекту, вы можете хранить их в одном файле. Если нет, разделите его на несколько файлов docker-compose.yml.

0 голосов
/ 13 июля 2020

Не все контейнеры связаны, но он был настроен таким образом, чтобы я мог просто запустить docker -compose один раз

Если вы сохраните все контейнеры в одном docker-compose.yml файл для этой необходимости, поэтому лучше go для Один проект на docker -составить файл вместо создания всех контейнеров. поскольку вы также можете запускать несколько файлов для создания файлов одновременно.

Если вы хотите запустить весь контейнер, просто передайте

docker-compose -f docker-compose.projecta.yml -f docker-compose.projectb.yml  up

Или для одного проекта

docker-compose -f docker-compose.projecta.yml

Вы также можете изучить вариант расходов

Совместное использование Компоновка конфигураций между файлами и проектами

Я буду go для Один проект на docker -компоновать файл потому что

  • Он не создаст ненужный контейнер
  • Это позволит избежать конфликта портов (в случае, если два порта используют один и тот же порт)
  • Сэкономит затраты на вычисления
  • Меньше времени на создание стека docker -compose
  • Более управляемый

И последнее при проверке файла compose действительно беспорядочно, так как нет правильной индикации строки при возникновении ошибки , поэтому ошибка конфигурации будет распространяться только на один проект и не повлияет на все остальные проекты.

...