Согласно справке docker-compose и docker run , опция user
устанавливает идентификатор пользователя (и идентификатор группы) процесса, выполняющегося в контейнере.Если вы установите значение 1000:1000
, ваш веб-сервер больше не сможет подключаться к порту 80.Привязка к порту ниже 1024 требует корневых разрешений.Это означает, что вам следует снова удалить добавленный оператор user: 1000:1000
.
Чтобы решить проблему с правами доступа для общего тома, вам нужно изменить владельца каталога.Запустите chown 1000:1000 /path/to/volume
.Это может быть выполнено внутри контейнера или непосредственно в хост-системе.Изменение является постоянным и вступает в силу немедленно (не требуется перезапуск контейнера).
В общем, я думаю, что том должен находиться в подкаталоге, например,
volumes:
- ./public:/var/www/html
Убедитесь, что правильнопользователь владеет ./public
.Если вы запускаете контейнер, а каталог не существует, Docker создаст его для вас.В этом случае каталог принадлежит root
, и вам необходимо изменить владельца вручную, как описано выше.
В качестве альтернативы, вы можете запустить веб-сервер как непривилегированный пользователь (user: 1000:1000
), разрешивсервер прослушивает порт 8080 и меняет маршрутизацию на
ports:
- "8080:8080"