Docker Compose для WordPress: готовый стек для локальной разработки

Введение в Docker Compose для WordPress

Локальная разработка WordPress-проектов требует настройки окружения, включающего веб-сервер, базу данных и другие сервисы. Docker Compose упрощает этот процесс, позволяя описать и запустить многоконтейнерное приложение с помощью одного файла.

Преимущества Docker Compose для локальной разработки

Использование Docker Compose для WordPress-проектов дает несколько преимуществ:

  • Изоляция проекта от других приложений и системных настроек
  • Легкость настройки и масштабирования окружения
  • Возможность использования разных версий PHP, MySQL и других сервисов

Структура проекта

Наш проект будет включать следующие сервисы:

  1. Nginx в качестве веб-сервера
  2. PHP-FPM для обработки PHP-кода
  3. MariaDB как базу данных
  4. Redis для кэширования
  5. MailHog для перехвата и тестирования почтовых рассылок

Настройка docker-compose.yml

Создайте файл docker-compose.yml в корне вашего проекта и добавьте следующий код:

version: '3' services: nginx: image: nginx:latest ports: - "80:80" volumes: -./nginx.conf:/etc/nginx/nginx.conf:ro -./wordpress:/var/www/html depends_on: - php - mariadb php: build:. volumes: -./wordpress:/var/www/html depends_on: - mariadb mariadb: image: mariadb:latest environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress volumes: - mariadb-data:/var/lib/mysql redis: image: redis:latest mailhog: image: mailhog/mailhog:latest ports: - "8025:8025" volumes: mariadb-data:

Настройка Nginx и PHP-FPM

Создайте файл nginx.conf и добавьте конфигурацию Nginx:

server { listen 80; server_name localhost; root /var/www/html; index index.php index.html; location / { try_files $uri $uri/ /index.php?_share=; } location ~ .php$ { try_files $uri =404; fastcgi_pass php:9000; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

Для PHP-FPM создайте Dockerfile в корне проекта:

FROM php:fpm RUN apt-get update && apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng-dev RUN docker-php-ext-install -j$(nproc) pdo_mysql

Запуск проекта

После настройки всех файлов, запустите проект командой docker-compose up -d. Теперь вы можете открыть WordPress в браузере по адресу http://localhost.

Дополнительную информацию о настройке безопасности WordPress вы можете найти в нашей статье о безопасности REST API WordPress. Для общего понимания WordPress рекомендуем ознакомиться с нашим полным руководством по освоению WordPress. Если вас интересует оптимизация производительности, посмотрите статью о том, как ускорить WordPress с помощью NGINX FastCGI Cache.

❓ Часто задаваемые вопросы

Что такое Docker Compose?

Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений.

Зачем использовать Docker для WordPress?

Docker обеспечивает изоляцию проекта, легкость настройки и масштабирования окружения, а также возможность использования разных версий сервисов.

Как настроить почтовые рассылки в WordPress с Docker?

Для перехвата и тестирования почтовых рассылок используется MailHog, который включается в docker-compose.yml.

Можно ли использовать другую базу данных вместо MariaDB?

Да, можно использовать MySQL или PostgreSQL, изменив соответствующую секцию в docker-compose.yml.