Организация процесса разработки WordPress сайта. Строим окружение с Docker.

Созданию окружения необходимо уделять внимания не меньше чем качественному коду. Потому что от удобства и комфорта тестирования продукта зависит конечный результат. В предыдущей части мы остановились на использовании среды виртуализации Docker. Данная среда позволяет нам, во-первых, минимально засорять систему установленными программами. Во-вторых, легко экспериментировать с разными версиями компонент. В-третьих, легко удалить устаревшие образы. И, что не маловажно, размер одного контейнера существенно меньше, чем при использовании виртуальных машин virtual box или vmware.

Предположим, что мы уже установили Docker и у нас есть доступная утилита docker-compose. Соберём среду с официальным образом WordPress и отдельный образ для базы данных. Для этого сформируем следующий docker-composer.yaml файл:

Первой секцией мы указали использование последней доступной версии mariadb, причём базу данные мы будем хранить внутри контейнера. Это не рекомендованный путь, однако я его применяю, потому что база данных сайта разработчика — это вещь подверженная разрушительным действиям ). Поэтому и особо переживать за то что она пропадёт при удалении контейнера я не буду. Секция

указывает, что мы порт 3306 из контейнера привязываем к порту 8081 нашей рабочей машины. Порт 8081 можно заменить на что угодно, главное, потом не забыть. Чтобы иметь возможность подключаться к базе данных внешними утилитами для просмотра её содержимого.

Далее, используем последнюю версию контейнера wordpress, и указываем точку монтирования http сервера на нашу текущую директорию, где расположен docker-composer.yaml файл. Я это предпочитаю делать в корневой директории сайта и далее хранить в системе управления версиями.

Запускаем в командной строке

У нас скачиваются все необходимые файлы и мы имеем в итоге полностью настроенную среду для работы с врдпресс сайтом. Мы можем с помощью браузера зайти по адресу http://localhost:8080 и увидеть начало установки нового WordPress сайта. Далее мы рассмотрим принципы управления исходными кодами сайта.