Русский wordpress на docker + docker-compose

Русский wordpress на docker + docker-compose

Эта статья будет полезна тем, кто хочет заниматься разработкой на 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.

Спасибо за внимание.

Добавить комментарий:

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.