Объем докера и Drupal - PullRequest
0 голосов
/ 31 мая 2019

Я сделал проект Drupal на Docker. Я начал с официальных изображений. Я сделал docker-compose так:

version: "3"

services:
  nginx:
    build:
      context: docker/nginx
      dockerfile: Dockerfile
    volumes:
      - drupal:/var/www/html
    ports:
      - 80:80
    env_file:
      - ./docker/env/nginx.env
    command: /bin/bash -c "sh /build_vhost.sh"

  cli:
    build:
      context: docker/cli
      dockerfile: Dockerfile
      args:
        DOCKER_UID: ${DOCKER_UID} # replace by your user id
        DOCKER_GID: ${DOCKER_GID} # replace by your group id
    volumes:
      - drupal:/var/www/html
    working_dir: /var/www/html
    env_file:
      - ./docker/env/mysql.env

  drupal:
    build:
      context: docker/drupal
      dockerfile: Dockerfile
      args:
        DOCKER_UID: ${DOCKER_UID} # replace by your user id
        DOCKER_GID: ${DOCKER_GID} # replace by your group id
    volumes:
      - drupal:/var/www/html
    working_dir: /var/www/html
    restart: always

  mariadb:
    image: mariadb:10.4-bionic
    ports:
      - 3306:3306
    volumes:
      - ./docker/volumes/mariadb/databases:/var/lib/mysql
    env_file:
      - ./docker/env/mysql.env
volumes:
    drupal:

И это работает, у меня в контейнерах есть файлы Drupal nginx, cli и drupal. Но если я изменю его, чтобы в моем проекте были файлы, например:

version: "3"

services:
  nginx:
    build:
      context: docker/nginx
      dockerfile: Dockerfile
    volumes:
      - ./drupal:/var/www/html
    ports:
      - 80:80
    env_file:
      - ./docker/env/nginx.env
    command: /bin/bash -c "sh /build_vhost.sh"

  cli:
    build:
      context: docker/cli
      dockerfile: Dockerfile
      args:
        DOCKER_UID: ${DOCKER_UID} # replace by your user id
        DOCKER_GID: ${DOCKER_GID} # replace by your group id
    volumes:
      - ./drupal:/var/www/html
    working_dir: /var/www/html
    env_file:
      - ./docker/env/mysql.env

  drupal:
    build:
      context: docker/drupal
      dockerfile: Dockerfile
      args:
        DOCKER_UID: ${DOCKER_UID} # replace by your user id
        DOCKER_GID: ${DOCKER_GID} # replace by your group id
    volumes:
      - ./drupal:/var/www/html
    working_dir: /var/www/html
    restart: always

  mariadb:
    image: mariadb:10.4-bionic
    ports:
      - 3306:3306
    volumes:
      - ./docker/volumes/mariadb/databases:/var/lib/mysql
    env_file:
      - ./docker/env/mysql.env

Файлы Drupal находятся не в контейнерах, а в томе: если я создаю файл в контейнере, он появляется в моей локальной файловой системе. Перед созданием образа каталог существует, и я положил на него 777 разрешений.

Вывод, когда сборка говорит, что файлы Drupal загружены и не обработаны.

Я не изменяю Dockerfile s между двумя версиями docker-compose.

Как я могу иметь файлы Drupal в моей локальной файловой системе для версии моих изменений, пожалуйста?

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