Синхронизировать бэк-офис с Github в CMS с состоянием - PullRequest
3 голосов
/ 21 ноября 2019

Для непрерывной интеграции и развертывания веб-сайтов я использую этот конвейер:

enter image description here

Но для многих CMS, таких как wordpress, prestashop, magento идругие, настройка веб-сайта и установка плагинов выполняется в бэк-офисе развернутого веб-сайта.

Сейчас я строю образ докера поверх базового образа CMS, а затем заменяю всекаталог / var / html с файлами в github. Затем Kubernetes развертывает контейнеры и подключает базу данных и постоянное хранилище


Следовательно, это нарушает мой конвейер: представьте, что кто-то устанавливает и настраивает плагин в бэк-офисе, а затем кто-то другойвносит изменения в файл и отправляет его в github. В репозитории github нет информации о том, что плагин был установлен, и он создаст и развернет новый образ без него.

Как интегрировать все изменения, сделанные в бэк-офисе, в моем репозитории github

Ответы [ 2 ]

0 голосов
/ 01 декабря 2019

Мое (ни в коем случае не идеальное) рабочее решение:

  1. Создать папку плагинов вне докера и создать ссылку на эту папку в dockered / wp-content / plugins
  2. воссоздать выше в производственной среде
  3. Тогда установка нового плагина не нарушает поток CI, но требует двух независимых установок и конфигураций, если вам (или команде разработчиков) нужно установить что-то новое.

Таким образом, вы в основном относитесь кфайлы плагинов так же, как вы уже делаете это с БД.

0 голосов
/ 27 ноября 2019

Решение, которое мы используем, - это переопределение класса DB.

Поэтому мы отслеживаем ряд таблиц (Configuration, module, hook и т. Д.) И храним все запросы об этом в sql. file.

Таким образом, во время принятия у нас также есть действия .sql для выполнения на стороне базы данных.

После развертывания вы либо вручную выполняете sql, либо сценарий обнаруживает, что новый SQLприсутствует и исполняется.

Таким образом, мы всегда в курсе.

Это решение, которое мы разработали в форме модулей Prestashop для отслеживания всех действий.

С уважением

...