Я работаю с официальным образом докера PHP и пытаюсь добавить путь к хосту как ОБЪЕМ. Мое намерение для местного развития.
Мой Dockerfile довольно прост:
FROM php:5.6-apache
VOLUME ["/var/www/html/"]
Тогда по моему docker run
Команда Я просто добавляю -v
флаг:
$ docker run -d -v ~/Workspace/website/:/var/www/html/ ...
Тем не менее, я получаю 403 после старта. Если я выполню запись bash, я вижу, что / var / www / html отказано в разрешении. Я думаю, что это связано с «чужим» пользователем / группой для гостя.
Журнал:
[Вт Янв 26 00: 29: 38.182727 2016] [core: error] [pid 10] (13) Отказано в доступе: [client 192.168.5.1:37996] AH00035: доступ к /index.php запрещен (путь к файловой системе ‘/ var / www / html / index.php ‘), так как отсутствуют разрешения на поиск для компонента пути
192.168.5.1 — — [26 / Jan / 2016: 00: 29: 38 +0000] «GET /index.php HTTP / 1.1» 403 446 «-» «Mozilla / 5.0 (X11; Fedora; Linux x86_64) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 47.0.2526.106 Safari / 537.36 «
Stat:
# stat html/
File: 'html/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd02h/64770d Inode: 3148160 Links: 26
Access: (0775/drwxrwxr-x) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ UNKNOWN)
Access: 2016-01-25 23:17:57.096095138 +0000
Modify: 2016-01-26 00:28:10.274181924 +0000
Change: 2016-01-26 00:28:10.274181924 +0000
ОБНОВИТЬ
Я принял предложение Джани и изменил gid группы www-data на 1000, чтобы соответствовать gid пути хоста.
$ id www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ groupmod -g 1000 www-data
$ id www-data
uid=33(www-data) gid=1000(www-data) groups=33(www-data)
$ stat html/
File: 'html/'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: fd02h/64770d Inode: 3148160 Links: 26
Access: (0775/drwxrwxr-x) Uid: ( 1000/ UNKNOWN) Gid: ( 1000/ www-data)
Access: 2016-01-25 23:17:57.096095138 +0000
Modify: 2016-01-26 00:28:10.274181924 +0000
Change: 2016-01-26 00:28:10.274181924 +0000
Тем не менее, это по-прежнему не исправить разрешения. Я даже изменил UID.
ОБНОВЛЕНИЕ № 2
Я только что подтвердил, что это работает безупречно на OS X. Первоначально я пытался заставить его работать на Fedora 23.
Вы должны проверить пользователя и группу рабочих процессов apache и указать исходный каталог chown.
Другой способ — изменить gid и uid рабочего пользователя Apache.
Других решений пока нет …