Образ WordPress с предустановленными плагинами с использованием Dockerfile - PullRequest
0 голосов
/ 13 июня 2019

Копирование папки плагина в каталог изображений WordPress по умолчанию и создание нового изображения.Перетащите его в хранилище на Docker Hub, затем извлеките образ и запустите контейнер, но плагин не установлен.Папка не найдена в контейнере.

docker-compose.yml

version: '3.3'
services:
  wp:
    image: "arslanliaqat/wordpresswithplugin:1.0"
    volumes:
      - './wordpress:/var/www/html'
    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:

Dockerfile

FROM wordpress:php7.1-apache

COPY preferred-languages /var/www/html/wp-content/plugins/preferred-languages/

не удалось предварительно установить плагин

1 Ответ

1 голос
/ 13 июня 2019

Так вот что происходит:

Когда вы создаете свое собственное изображение, вы добавляете папку плагина /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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...