Эта статья будет полезна тем, кто хочет заниматься разработкой на wordpress. Если нужно просто запустить сайт, то есть официальная документация на dockerhub. Данный мануал не является исчерпывающим и подразумевает, что уже есть БД и, опционально, реверс-прокси.
Итак, приступим…
Первым делом нужно приготовить Dockerfile с содержимым:
FROM php:7.3-apache
WORKDIR /var/www/html
RUN apt-get update \
&& apt-get install -y libldb-dev libldap2-dev libpng-dev libmagickwand-dev \
&& apt-get clean \
&& docker-php-ext-install mysqli bcmath exif gd ldap \
&& printf "\n" | pecl install imagick \
&& docker-php-ext-enable imagick \
&& ln -sf /dev/stdout /var/log/apache2/access.log \
&& ln -sf /dev/stderr /var/log/apache2/error.log \
&& a2enmod rewrite
За основу взят образ php версии 7.3 на apache. Как показывает практика, с ним меньше проблем в распределении прав на файлы. Устанавливаются нужные модули php и библиотеки. Активируется модуль апача — rewrite для доступа к статьям по пермалинкам.
Теперь можно подготовить docker-compose.yml со следующим содержимым:
version: '3.1'
services:
app:
build: .
restart: always
ports:
- 8080:80
volumes:
- ./wordpress/:/var/www/html/:rw
logging:
driver: "json-file"
options:
max-size: "50m"
Теперь нужно скачать zip-архив последней сборки русской версии wordpress c официального сайта ru.wordpress.org и распаковать в директории вместе в docker-compose файлом. Чтобы быть уверенным, что все права назначены правильно, выполним chown -R 33:33 wordpress
. ID 33 соответствует пользователю www-data в контейнере.
Далее запускаем сборку docker-compose build
. После этого можно запускать контейнер docker-compose up -d
. Сайт будет доступен на порту 8080.
Спасибо за внимание.
Свежие комментарии