Запустите Wordpress с помощью docker-compose без использования образа WordPress

Я хотел бы обновить очень старую установку WordPress. Я хотел бы воспроизвести живую среду локально. Для этого я бы построил свой PHP, MySQL через docker compose. Однако у меня есть проблема с этим. Обычно для этого вы берете готовые изображения WordPress. Но в моем случае я не могу этого сделать, потому что версия WP не поддерживается в докер-хабе или где-либо еще. По этой причине я бы построил свой docker-compose со следующими изображениями: php7.0, apache и MySql. Однако мне интересно, как включить модули PHP, которые нужны Wordpress, в мой файл yaml. Есть ли шаблон, которому я могу следовать? И правильный ли способ, который я выбираю здесь, или есть альтернативный путь?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
103
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Образы Docker состоят из слоев. Вы можете взять PHP-образ из Docker Hub и добавить на него. На самом деле официальный образ Wordpress использует официальный образ PHP в качестве основы.

Создайте новый Dockerfile.

Вы можете выбрать вариант PHP 7 в качестве стартовой базы:

FROM php:7.0-apache

Для некоторых расширений, таких как GD Library (используется для создания миниатюр), вам необходимо установить некоторые зависимости. Этот образ основан на Debian Linux, поэтому вы используете:

RUN apt-get -y update && apt-get -y install libfreetype6-dev libjpeg62-turbo-dev libpng-dev unzip

Затем вам понадобятся некоторые расширения PHP, такие как вышеупомянутая библиотека GD и MYSQLi. В официальном образе PHP есть утилита (см. «Как установить больше расширений PHP»), которая делает это очень просто:

RUN docker-php-ext-configure gd --with-freetype --with-jpeg
RUN docker-php-ext-install mysqli gd exif zip

Теперь вы можете создать свой образ:

docker build -t mycustomphpimage:latest .

И запустите его:

docker run mycustomphpimage:latest 

Автоматическое создание образа с помощью CI/CD в Gitlab/Github и развертывание пользовательских образов в репозиторий для загрузки на сервер выходит за рамки этого ответа. Вы можете просто создать образ на самом сервере при развертывании. Если вы не хотите этого делать, вы также можете создать образ локально и использовать docker export и docker import.


Образ Wordpress для Wordpress устанавливает некоторые расширения, самые критичные из них gd, exif (изображения), zip (распаковка плагинов), mysqli (база данных). Попробуйте выяснить, что установлено на вашем текущем рабочем сервере, и добавьте их в Dockerfile — многие из них будут «просто работать» с docker-php-ext-install, а некоторые можно игнорировать.

Также можно использовать старую версию изображения Wordpress 5.0 или использовать его в качестве основы (FROM wordpress:5-php7.0-apache).

Вы упомянули, что хотели бы сделать это для обновления старой установки, поэтому следующее неприменимо к вам, но для тех, кто найдет этот ответ в будущем: просто потому, что вы можете запускать старые версии PHP/Wordpress, пожалуйста, не делайте этого в продакшене и постарайтесь обновиться как можно скорее.

Другие вопросы по теме