Проблема доступа к папке fuse-zip, смонтированной в контейнере docker с использованием www-data - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть набор данных внутри ZIP-файла, который я хочу сделать доступным для docker контейнера. Эти данные монтируются на хосте с использованием fuze-zip, например:

fuse-zip aa.zip aa

. Я вижу содержимое aa, поэтому он хорошо монтируется, затем запускаю контейнер apache: php.

docker run -v $(pwd)/aa:/var/www/html/aa -it php:apache

Теперь этот контейнер был смонтирован с именем rave_dijkstra, и я обращаюсь к нему с помощью

docker exec -it brave_dijkstra bash

Я также могу видеть смонтированную папку и содержимое, используя root пользователь без проблем. Я могу без проблем изменить разрешения и владельца папки, назначив ее www-data пользователю.

root@1b8d70b1d162:/var/www/html# ls -l
total 0
drwxrwxr-x 196 www-data www-data 0 Apr  1 15:47 aa

однако, если я попытаюсь сделать то же самое с пользователем www-data, я увижу что-то сломанное

root@1b8d70b1d162:/var/www/html# su www-data -s /bin/sh -c 'ls -l'
ls: cannot access 'aa': Permission denied
total 0
d????????? ? ? ? ?            ? aa

Еще один тест с использованием php, сначала с root пользователем:

root@1b8d70b1d162:/var/www/html# php -a
Interactive shell

php > var_dump(file_exists(__DIR__.'/aa'));
bool(true)

Теперь с www-data пользователем:

root@1b8d70b1d162:/var/www/html#  su www-data -s /bin/sh -c 'php -a'
Interactive shell

php > var_dump(file_exists(__DIR__.'/aa'));
bool(false)

Если используя пользователя root, нет проблем (чтение-запись ... все работает), но ничего не работает, используя пользователя www-data.

Я также пытался запустить контейнер с флагами --privileged --cap-add SYS_ADMIN --device /dev/fuse без успех.

В чем может быть проблема? Заранее спасибо!

...