У меня есть набор данных внутри 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
без успех.
В чем может быть проблема? Заранее спасибо!