Пишу про разработку вообще и в частности про: JavaScript, HTML5, CSS3, AngularJS, ReactJS, Agile.

Вордпресс в докере

Во-первых, почему в докере? А как же иначе создать изолированную среду разработки, которая будет максимально подходить под сервер? Разворачивать lamp на домашнем компьютере очень не хочется. Оставим даже то, что по характеристикам все равно не будет соответствовать тому что на сервере. Самая большая для меня проблема в том, что при таком подходе не понятно как мне потом на том же компе развернуть еще среду для питончика, со всеми его плагинами или для go и т.д. В общем вы меня поняли – разработка должна быть изолированной и возможность перехода между языками должна быть максимально быстрой. Поэтому докер – это наш путь.

Теперь как же его развернуть под вордпресс. Поначалу я решил взять готовый image с архитектурой lamp и в нем все запускать. Только не тут-то было. Во-первых, нет ни одной которая бы активно поддерживалась, видимо никому не надо. Во-вторых, те что пробовал как-то не очень хорошо работали. Ну и в-третьих, запускать несколько сервисов в одном докере это не совсем по феншую. База данных должна быть в отдельном контейнере, вордпресс в отдельно – взболтать но не смешивать.

james-bond-martini

Поэтому пришлось посмотреть, что пацаны в интернете делают. Да, я знаю, можно было и сразу с этого начать, но как-то не срослось. И оказалось, что у пацанов есть отличный совет, который прост и легок в использовании! Понадобится создать всего один файл и все:

docker-compose.yml

Это файл конфигурации, который говорит докеру какие контейнеры и с чем запустить. В моем случае их будет два: wordpress и mysql. У каждого указываем какую версию взять. Для вордпресса так же говорим какую папку заменить на локальную – “wp-content”, собственно, это единственная папка, которая имеет значение в разработке. Разумеется еще указываем пароли для базы данных, и все, больше ничего не нужно. Дальше только запускаем:

Есть правда момент с базой данных – что если нужно взять уже существующую базу. В данном случае после запуска контейнеров, нужно импортировать базу:

Теперь можно открывать http://localhost:8080 – все должно работать. После того как закончите, то убрать контейнеры можно вот этой командой:

Поделиться:
comments powered by Disqus