Я создал простой проект Docker Compose в качестве среды разработки. У меня есть контейнеры PHP-FPM, Nginx, MongoDB и Code.
Теперь я хочу автоматизировать процесс и развернуть его на производство.
docker-compose.yml
может быть расширен и может определять несколько сред. См. https://docs.docker.com/compose/extends/ для получения дополнительной информации.
Однако для моих контейнеров есть Dockerfiles. И для среды разработчиков требуется больше пакетов, чем в производстве.Docker Compose Dev и производственные среды Лучший рабочий процесс
Основной вопрос, я должен использовать отдельные dockerfiles для dev
и prod
и управлять ими в docker-compose.yml
и production.yml
?
Отдельные докерные фильтры - это простой подход, но есть дублирование кода.
Другое решение - использовать переменные среды и как-то обрабатывать их из сценария bash (возможно, как entrypoint?).
Я ищу другие идеи.
Да, но я все же должен был установить некоторые пакеты для сред dev и prod, и это делается в Dockerfile. Но dockerfiles не имеет управляющих структур, таких как другие языки, поэтому вы не можете контролировать, что устанавливать в зависимости от среды. –
, в этом случае, возможно, вам захочется использовать возможность использования. он работает следующим образом: используйте файл Docker, чтобы загружать изображение с возможностью его использования, а затем разрешить проблему. Если вы хотите пройти весь путь и автоматизировать все, тогда вы начнете с доступных игрушек для создания изображений Docker на вашей локальной машине; затем запустите их в частный (или общедоступный) реестр (также запустите внутри док-станции :), затем напишите загружаемые книги для загрузки этих изображений на удаленных хостах и запустите контейнеры – milan
Это можно решить, если у вас есть отдельные Dockerfiles для разработки и производства (я думаю, вы могли бы имеют общую базу). – Fuzzy76