Назад | Перейти на главную страницу

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

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

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

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

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

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

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

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

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

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

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

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