Каким будет хороший докерский рабочий процесс webdev?

У меня есть предчувствиедокер может значительно улучшить мой рабочий процесс webdev - но у меня нетМне вполне удалось понять, как подойти к проекту, добавив докер в стек.

Основной программный стек будет выглядеть так:

Программного обеспечения

Образ (ы) Docker, предоставляющий пользовательский стек LAMP

Apache с несколькими модулямиMYSQLPHPНекоторые CMS, напримерSilverStripe

GIT

Workflow

Я мог бы представить, что рабочий процесс выглядит примерно так:

развитиеНапишиDockerfile который определяет LAMP-контейнер, отвечающий указанным выше требованиямREQ: машина должна запустить apache / mysql сразу после загрузкиСоздайте образ докераСкопируйте файлы, необходимые для запуска CMS, например, в.~/dev/cmsdirПоложил~/dev/cmsdir/ под контролем версийЗапустите докер-контейнер и как-нибудь смонтируйте~/dev/cmsdir в/var/www/ на контейнереЗаполните базу данныхРаботать в/dev/cmsdir/Совершить & закрыть докер контейнерразвертываниеНастройте удаленный хост (например, с ansible)Отправить изображение контейнера на удаленный хостполучатьcmsdir-проект через gitЗапустите Docker-контейнер, извлеките базу данных и смонтируйтеcmsdir в/var/www

Теперь, на бумаге все выглядит довольно хорошо, НО я не совсем уверен, будет ли это вообще правильным подходом.

Вопросы:

При локальном развитии, как мне заставить базу данных сохраняться между перезагрузками экземпляра контейнера? Или мне нужно будет запускать sql-dump каждый раз перед вращением контейнера?

Должен ли я иметь отдельные экземпляры контейнера для базы данных и сервера apache? Или было бы достаточно иметь один контейнер для описанного выше варианта использования?

При использовании отдельных контейнеров для базы данных и сервера, как я могу автоматизировать их вращение вверх и вниз одновременно?

Как бы я на самом деле смонтировать/dev/cmsdir/ в контейнеры/var/www/-directory? Должен ли я использовать-объемы данных за это?

Я пропустил какие-либо подводные камни? Что-нибудь, что может быть упрощено?

Ответы на вопрос(4)

Ваш ответ на вопрос