Docker Compose documentation и его example use case были полезны, чтобы разобраться в различных возможностях разделить различные рабочие среды (разработка, производство и т. Д.).Docker Compose, когда использовать изображение поверх сборки
web:
image: example/my_web_app:latest
links:
- db
- cache
db:
image: postgres:latest
cache:
image: redis:latest
Однако мне было не очень понятно, когда использовать изображения над сборкой.
Это единственное доступное описание, которое идет с их только image: example/my_web_app:latest
например:
Другой распространенный случай использования работает AdHoc или административные задачи против одного или нескольких услуг в Compose приложение. В этом примере демонстрируется запуск резервного копирования базы данных.
Остальные их пример случаев использует build: .
Я понимаю, что работа с изображениями над зданием дает лучшую производительность при повороте контейнера вверх в первый раз, так как изображения уже подготовлены сборки. Тем не менее, я могу предвидеть многие проблемы при этом:
- [разработка] Разработчики могли бы изменить конфигурацию Dockerfile (и им нужно будет как-то протестировать ее до нажатия любых изменений).
- [разработка] Файлы исходного кода будут меняться (но я думаю, вы можете легко это исправить, разделив тома).
- [производство] Возможно, вы не всегда хотите быть в версии
:latest
(или вы?). - [any] с использованием изображений (и тега
:latest
), у вас нет контроля над файлами, которые вы касаетесь. Но каждый раз, когда вы включаетеdocker-compose up
, он будет обновляться до последней рабочей версии.
Некоторые из предыдущих пунктов могут быть неверными. Не стесняйтесь разбирать их.
+1 потому что вы указали очень интересные детали, например, как вы справляетесь с изображениями и изменениями «Dockerfile» в то же время – zurfyx
Согласитесь. Вы подняли очень хорошие моменты. Мы на самом деле используем swarm, ansible и Jenkins и имеем очень сложную настройку, которая является автоматизированной и загружает контейнеры, когда они проходят тесты сборки. Я попытался свести к минимуму сферу моего ответа, потому что Docker и ci/cd могут быть очень сложными очень быстро. Compose отлично, если у вас есть контейнер, который необходимо протестировать, или если ваши требования малы. В настоящее время мы управляем более чем 300 контейнерами в производстве, а система сборки немного сложнее, чем описано выше. @zurfyx pm, если вы хотите общаться в частном порядке. –
@ GHETTO.CHILD Я ценю это от тех, кто владеет Docker, но я не уверен, как с вами связаться. Не стесняйтесь использовать любую социальную платформу в своем профиле – zurfyx