Здравствуйте!
Помогите, пожалуйста, в следующем вопросе.
Для разработки php-проектов на локальных машинах использовали Docker. Теперь решили попробовать перевести на Docker — stage и production.
Плюс к этому возникло желание попробовать реализовать и сам процесс деплоя с помощью Docker, без сторонних инструментов вроде Capistrano и т.п.
Простейший механизм деплоя предполагал следующее:
— собирается "пустой" Docker-image, в который включаются файлы проекта, назовем его App. Он предназначен только для хранения и транспортировки файлов проекта.
— с помощью Docker-Compose и Docker-Machine на удаленной машине запускается Docker-container на основе App-image.
— досуп контейнера web-сервиса(php-fpm+nginx) к файлам проекта из App-контейнера осуществляется через named-volume.
Попробовал. Работает. Но работает только для первоначального запуска проекта. Так как предоставление доступа к коду проекта посредством named-volume имеет свои нюансы. Узнал о них только после того, как открыл
issues на Docker github. Начал строить свои костыли с очисткой named-volume и т.п. Понял, что это не true-Docker-way. Решил отказаться от этого варианта.
На
Docker github подсказали связать Web(php-fpm+nginx) и App(php-code) контейнеры с помощью socket.
Собственно, вопрос — как правильно это сделать в контексте Docker.
Большое спасибо за помощь и советы!