Как обрабатывать доступ на запись / чтение к томам Docker?

Мне было трудно связать 2 контейнера вместе, и мне посоветовали начать использовать docker-compose. Поэтому я создаю следующий файл docker-compose:

version: '2'
services:
  db:
    image: mysql:latest
    volumes:
      - "./.data/db:/var/lib/mysql"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: my-pass
      MYSQL_DATABASE: prestashop
      MYSQL_USER: my-shop
      MYSQL_PASSWORD: my-pass

  prestashop:
    depends_on:
      - db
    image: prestashop/prestashop:latest
    volumes:
      - "./.data/themes:/var/www/html/themes"
      - "./.data/modules:/var/www/html/modules"
      - "./.data/override:/var/www/html/override"
    links:
      - db
    ports:
      - "10083:80"
    restart: always
    environment:
      DB_SERVER: db
      DB_NAME: prestashop
      DB_USER: my-shop
      DB_PASSWD: my-pass

Это работает очень хорошо, и если я захожу на страницу через обратный прокси-сервер nginx, я получаю мастер начальной установки.

Но если я добавлю постоянные тома данных:

volumes:
  - "./.data/themes:/var/www/html/themes"
  - "./.data/modules:/var/www/html/modules"
  - "./.data/override:/var/www/html/override"

Мастер будет жаловаться на многие права на чтение / запись. Это почему? Внутренние тома уже имеют правильный chmod, я думаю? Так что это только проблема синхронизации, я думаю. Но я пытался chmod или chown папки.data, но безуспешно

1 ответ

Решение

Я решил эту проблему. После docker-compose up -d я скопировал модули, темы и переопределение внутренних папок на хост-компьютер с помощью docker cp

Потому что Prestashop проверит, все ли файлы доступны.

После копирования вы можете запустить процедуру установки prestashop.

Другие вопросы по тегам