Как обрабатывать доступ на запись / чтение к томам 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.