WordPress — это популярная CMS для создания и управления сайтами. Docker — это платформа для создания, развертывания и управления контейнерами.
Установка WordPress в Docker может упростить процесс создания и управления сайтом. В этой статье мы расскажем, как установить WordPress в Docker.
Шаг 1: Установка Docker
Перед установкой WordPress в Docker, нужно установить Docker на ваш компьютер или сервер.
Для Linux, использовать следующую команду:
sudo apt-get install docker.io
Для Mac, нужно загрузить Docker Desktop для Mac на официальном сайте https://www.docker.com/products/docker-desktop.
Для Windows нужно загрузить Docker Desktop для Windows на официальном сайте https://www.docker.com/products/docker-desktop.
После установки Docker, проверьте его работоспособность, выполнив команду:
docker --version
Шаг 2: Создание Dockerfile
Для установки и настройки WordPress в Docker потребуется Dockerfile. В Dockerfile мы определим, какие пакеты будут установлены в контейнер и как конфигурировать WordPress и сервер.
FROM wordpress:latest
# обновление аптечек и установка пакетов
RUN apt-get update && apt-get install -y \
    curl \
    nano \
    vim \
    && docker-php-ext-install mysqli
# копирование кастомных php.ini и конфигов в контейнер
COPY conf/php.ini /usr/local/etc/php/
# копирование скриптов для бэкапа в контейнер
COPY backup.sh /backup.sh
# настройка прав доступа
RUN chmod +x /backup.sh
CMD [ "/bin/bash" ]
В этом примере:
FROM wordpress:latestобозначает, что базовый образ WordPress будет использован для создания нового контейнера;RUN apt-get update && apt-get install -y curl nano vim && docker-php-ext-install mysqliвыполняет обновление установленных пакетов и установку новых пакетов, таких как curl, nano, vim, и php mysqli расширение;COPY conf/php.ini /usr/local/etc/php/копирует кастомный php.ini файл в контейнер;COPY backup.sh /backup.shкопирует скрипт для бэкапа в контейнер;RUN chmod +x /backup.shустанавливает права для запуска бэкап скрипта;CMD [ "/bin/bash" ]указывает на то, какой процесс должен быть запущен внутри контейнера, т.е. shell.
Шаг 3: Создание docker-compose.yml
Для управления контейнерами в Docker нужно создать файл docker-compose.yml.
version: '3'
services:
    db:
        image: mysql:5.7
        volumes:
            - db_data:/var/lib/mysql
        restart: always
        environment:
            MYSQL_ROOT_PASSWORD: wordpress
            MYSQL_DATABASE: wordpress
            MYSQL_USER: wordpress
            MYSQL_PASSWORD: wordpress
    wordpress:
        depends_on:
            - db
        image: wordpress:latest
        ports:
            - "8000:80"
        restart: always
        environment:
            WORDPRESS_DB_HOST: db:3306
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: wordpress
            WORDPRESS_DB_NAME: wordpress
        volumes:
            -./wp-content:/var/www/html/wp-content
            -./scripts:/var/www/html/scripts
            -./conf:/usr/local/etc/php/
volumes:
    db_data:
В этом примере:
version: '3'определяет используемую версию docker-compose;services:определяет наши сервисы, которые будут запущены в контейнерах;db:определяет сервис базы данных MySQL;image: mysql:5.7определяет, что контейнер на основе образа MySQL 5.7 будет запущен;