Как активировать плагин WordPress в образе докера в процессе сборки? - PullRequest
0 голосов
/ 04 декабря 2018

Я ищу, как активировать плагин WordPress с помощью команды запуска Dockerfile в процессе сборки.

Соответствующая команда в Dockerfile:

# activate plugins
RUN wp plugin activate wp-discourse-export --allow-root --path=/var/www/html

Ошибка I 'я получаю

Step 10/10 : RUN wp plugin activate wp-discourse-export --allow-root --path=/var/www/html
---> Running in c5dac3f62c4c
Error: This does not seem to be a WordPress install.
Pass --path=`path/to/wordpress` or run `wp core download`.
ERROR: Service 'wordpress' failed to build: The command '/bin/sh -c wp plugin 
activate wp-discourse-export --allow-root --path=/var/www/html' returned a non-zero code: 1

Если я отключу эту команду RUN, соберу образ, выведу образы докера, войду в созданный образ докера и запусту

wp plugin activate wp-discourse-export --allow-root --path=/var/www/html
Plugin 'wp-discourse-export' activated.
Success: Activated 1 of 1 plugins.

Активация прошла успешно.

Как активировать плагин WordPress в образе Docker в процессе сборки?

Обновление:

Я работаю вокругпроблема, скопировав скрипт в образ и затем запустив его позже с хоста.

в Dockerfile.

# activate plugins
COPY activate-wordpress-plugins.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/activate-wordpress-plugins.sh

после docker-compose я запускаю эту команду один раз.

docker exec -it wordpress_1_7522c9dae310 /usr/local/bin/activate-wordpress-plugins.sh

Обновление 2

Я создал сценарий для вызова экземпляров, а затем запустил сценарий.

#!/usr/bin/env bash

echo docker-compose up -d
docker-compose up -d

echo docker exec -it $(docker-compose ps -q wordpress)  /usr/local/bin/activate-wordpress-plugins.sh
docker exec -it $(docker-compose ps -q wordpress)   /usr/local/bin/activate-wordpress-plugins.sh

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Wordpress имеет специальный каталог с именем mu-plugins.Просто разместите там свои плагины.https://codex.wordpress.org/Must_Use_Plugins.

WordPress ищет только файлы PHP прямо в каталоге mu-plugins.Возможно, вы захотите создать прокси-загрузчик PHP-файла в каталоге mu-plugins

  • Всегда включен, нет необходимости включать через администратора, и пользователи не могут отключить случайно.
  • Можно включить, просто загрузив файл в каталог mu-plugins без необходимости входа в систему.
  • Загружается PHP в алфавитном порядке перед обычными плагинами, что означает применение хуков API, добавленных в mu-pluginко всем остальным плагинам, даже если они запускают подключаемые функции в глобальном пространстве имен
0 голосов
/ 04 декабря 2018

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

Подходящее время для активации плагина будет во время запуска, как вы предлагаете, когда экземпляр контейнера создается.

...