Тома Docker с одним и тем же родителем? - PullRequest
0 голосов
/ 05 февраля 2019

Я пытаюсь создать среду разработки WordPress на основе докера и хочу иметь такую ​​структуру папок:

.
|
--wp-data
|
--wp-content
|
--plugins
|
--themes

, где плагины и темы также находятся внутри wp-content

это мой файл docker-compose:

version: '3.3'
services:
    db:
        image: mysql:5.7
        volumes:
            - ./wp-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
        volumes:
            - ./wp-content:/var/www/html/wp-content/
            - ./themes:/var/www/html/wp-content/themes/
            - ./plugins:/var/www/html/wp-content/plugins/
        environment:
            WORDPRESS_DB_HOST: db:3306
            WORDPRESS_DB_USER: wordpress
            WORDPRESS_DB_PASSWORD: wordpress
            WORDPRESS_DB_NAME: wordpress
volumes:
    wp-data:
    wp-content:
    themes:
    plugins:

wp-данные и w-контент созданы нормально, но вложенные темы и плагины не

что мне не хватает?

С уважением

1 Ответ

0 голосов
/ 05 февраля 2019

Вы неправильно используете тома.В вашем docker-compose.yml вы создаете bind mounts для каждой службы - это означает, что вы монтируете конкретный каталог хоста в контейнеры.

В то же время вы объявляете раздел volumes, где явно объявляются тома сте же имена, но они никогда не используются и создаются как пустые каталоги.

Если вы хотите создать и использовать тома , вам нужно переписать свой docker-compose.ymlследующим образом:

services:
    ...
    db:
        ...
        volumes:
            - wp-data:/var/lib/mysql
        ...
    wordpress:
        volumes:
            - wp-content:/var/www/html/wp-content/
            - themes:/var/www/html/wp-content/themes/
            - plugins:/var/www/html/wp-content/plugins/
volumes:
    wp-data:
    wp-content:
    themes:
    plugins:

Это включит тома, но вам все еще нужен способ поместить в них данные с хоста (например, docker cp).

Из другогорука, из вас намеревавшаяся использовать привязные крепления , вам нужно полностью удалить конечный раздел volumes:, чтобы не запутаться.

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