Откуда унаследованы права доступа к папке '/tmp' внутри контейнера docker?

У меня есть контейнер PHP docker, который не смог начать говорить, что 'session_start' don't have permissions on /tmp/xxxx file.

Я обнаружил, что разрешение папки '/tmp' является 'drwxr-xr-t'. Когда я изменю его на 'drwxrwxrwt', контейнер работает в обычном режиме.

Возможно, я сделал что-то не так с моей хост-системой, чтобы отладить другую несвязанную проблему. Но я не помню, что я сделал и что могло вызвать вышеуказанную проблему.

Итак, я хочу знать, откуда унаследованы права доступа к папке '/tmp' внутри контейнера docker?

Заранее спасибо. :)

Глядя на базовое изображение, которое вы используете, /tmp разрешения установлены правильно:

$ docker run -it --rm php:5-apache ls -ald /tmpdrwxrwxrwt 1 root root 4096 Jan 23 00:10 /tmp

Это означает, что изменение разрешения папки произошло на вашей стороне, либо при создании вашего образа с какого-то шага в вашем Dockerfile, либо в том, как вы запускаете свой контейнер. Без подробной информации о вашем файле Dockerfile или командах, используемых для запуска вашего контейнера (включая файл docker-compose.yml, если вы его используете), я не считаю возможным дать более подробный ответ.

Если изображение хорошее, следующее, что нужно проверить, - это привязка и монтирование тома, так как они могут все испортить. Также стоит проверить любые скрипты точки входа, если они делают что-нибудь глупое.

Вы должны найти ответ в файле Dockerfile.

Либо в базовом образе уже есть эти неправильные завивки, либо Dockerfile делает что-то плохое во время сборки образа.

В обоих случаях вы можете просто устранить эту проблему в файле Dockerfile и перестроить новый образ.

@BMitch Мое изображение “ИЗ php: 5-apache”, которое затем “ИЗ debian:stretch-slim”, которое затем “С нуля”. Ни один из них явно не изменяет разрешения ‘/tmp’.

Можете ли вы предоставить используемое изображение и / или файл Dockerfile, используемый для создания вашего изображения? Также укажите команду, которую вы используете для запуска контейнера, включая любой файл compose.yml.