Так вот что происходит:
Когда вы создаете свое собственное изображение, вы добавляете папку плагина /var/www/html/wp-content/plugins/preferred-languages/
, и это прекрасно работает.
Вы можете проверить это, просто запустив docker run -it --rm arslanliaqat/wordpresswithplugin sh
и cd /var/www/html/wp-content/plugins
, и вы увидите папку.
Причина, по которой папка отсутствует при использовании файла docker-compose.yml, заключается в том, что вы монтируете том «поверх» уже существующей папки. Попробуйте удалить объявление томов из службы wp в файле docker-compose.yml, и тогда вы сможете увидеть папку вашего плагина.
Я бы посоветовал вам использовать wordpress: php7.1-apache для службы wp и монтировать папку плагинов так же, как вы монтируете wordpress
Пример:
version: '3.3'
services:
wp:
image: "wordpress:php7.1-apache"
volumes:
- './wordpress:/var/www/html'
- './preferred-languages:/var/www/html/wp-content/plugins/preferred-languages'
ports:
- "8000:80"
environment:
WORDPRESS_DB_PASSWORD: qwerty
mysql:
image: "mysql:5.7"
environment:
MYSQL_ROOT_PASSWORD: qwerty
volumes:
- "my-datavolume:/var/lib/mysql"
volumes:
my-datavolume:
Есть ли какая-то конкретная причина, по которой плагин должен быть уже в образе?
ОБНОВЛЕНО
Я создал простую суть, которая должна выполнить то, что вы хотите сделать. В точке входа отсутствуют проверки для уже существующих каталогов тем / плагинов и т. Д., Но это должно служить POC
https://gist.github.com/karlisabe/16c0ccc52bdf34bee5f201ac7a0c45f7