Я работаю над образом Docker, который запускает Magento 2. По своей сути он запускает следующие команды при запуске контейнера:
- Он настраивает Magento с
setup:config:set
. - Он может установить Magento, используя
setup:install
, если это необходимо и запрашивается. - Он запускается
setup:di:compile
. - Он запускается
deploy:mode:set
. - Если этозапущенный в производство, он также запускает
setup:static-content:deploy
.
Контейнер имеет несколько хуков, в которые я могу добавить функциональность.Например, до setup:di:compile
я запускаю такие команды, как config:set
и module:enable
.Чем больше хуков я добавляю, тем медленнее он становится.
Это выполняется последовательно, каждый раз при запуске контейнера.Это медленный процесс.
Контейнеры автоматически создаются нашим CI.Пример того, что мы делаем, можно найти здесь: https://github.com/sensson/docker-magento2/tree/master/example.
К сожалению, я не разработчик, и мои знания в Magento очень малы.Я изо всех сил пытаюсь улучшить наш процесс запуска.
Я надеюсь узнать что-то от двух, у кого гораздо больше знаний о Magento 2, чем у меня.Я думаю, что весь процесс мог бы быть более эффективным, возможно, некоторые задачи могут быть перенесены в наш CI тем или иным способом (без потери слишком большой гибкости, этот текущий контейнер может быть использован как в производственных, так и в средах разработки прямо сейчас, поэтомуполезно для нас).
Как я могу повысить скорость наших развертываний (как в производстве, так и в разработке)?Можем ли мы сделать вещи по-другому?