Задать вопрос
Inkognitoss
@Inkognitoss
Full-stack разработчик.

Как организовать грамотную доставку образа PHP приложения если необходим общий volume?

Всем привет! Заголовок вопроса не очень информативный, постараюсь объяснить:

Очень хотел бы с кем-нибудь обсудить один вопрос, чтобы прийти к бестпрактике.

Пытаюсь организовать грамотную доставку PHP приложения на прод с возможностью безшовных релизов (CD). Приложение состоит из трех контейнеров. Т.е. это классический PHP + APACHE + NGINX , при этом связка хорошо себя зарекомендовала и не хотелось бы отказываться и собирать всё в один image. Ранее доставлял код git-ом + рестартом контейнеров докер-композом. Теперь нужно чтобы доставлялись только образы.

Главная моя проблема на сегодня в том, что когда я делаю вольюм, условно voulume_public_folder который должен быть доступен всем контейнерам, то я лишаюсь возможности обновления кода при pull-е главного образа приложения (php в данном случае). Это происходит из-за того, что при первом контейнера (php) создается named volume, куда благодаря команде VOLUME в Dockerfile залетают файлы - круто. Но в следующий раз Docker уже не создает ничего и не обновляет соответственно (согласно документации).

Может кто-то подскажет, как быть в таком случае?
  • Вопрос задан
  • 121 просмотр
Подписаться 2 Сложный Комментировать
Решения вопроса 1
Inkognitoss
@Inkognitoss Автор вопроса
Full-stack разработчик.
Ответ: никак. Используйте volume если нужен некий storage. В противном случае организуйте контейнеры так, чтобы обновляемый в них код во время релизов был уже на этапе сборки образа.

В случае данного сабжа - если приложение не разделить на 3 сервиса, сервис будет один.
В итоге я убрал NGINX из связки и сделал образ из официального php-apache (а не php + apache)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dimuska139
Backend developer
Зачем Вам ОБЩИЙ вольюм, доступный всем контейнерам? Если там ваши php-скрипты, то при деплое собирайте образы, пропихивая туда нужные файлы - и все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы