Как запустить главный процесс PHP-FPM от имени пользователя, не являющегося пользователем root?

Как запустить главный процесс PHP-FPM от имени пользователя, не являющегося пользователем root?

Я пытаюсь реализовать запуск PHP-FPM-пода без рутирования в Kubernetes.

Я попробовал просто запустить процесс в модуле Kubernetes через скрипт инициализации, который работает php-fpm -FOот имени www-dataпользователя, но он жалуется на отсутствие прав доступа /dev/stderr(Расположение выходного файла журнала). Добавление www-dataпользователя в ttyгруппу также не помогло.

Я пробовал указать другое местоположение, например, /proc/self/fd/2и даже /dev/pts/1в качестве местоположения журнала, но безрезультатно.

Самое забавное, что когда я запускаю docker run -itd app:latest su -l www-data -s /bin/sh -c php-fpm -FO &, по сути, ту же самую команду запуска напрямую через Docker, она запускается и работает просто отлично.

У меня нет никаких securityContextнастроек в Kubernetes, которые могли бы помешать нормальному запуску процесса.

Есть ли какие-нибудь предложения/идеи, которые стоит попробовать?

решение1

Если вы сталкиваетесь с той же ошибкой в ​​разных общедоступных приложениях, это может указывать на проблему с GKE. Вы можете сообщить об этом черезТрекер проблем.
Если эта ошибка характерна для этого приложения, рассмотрите другой агрегатор журналов, напримермодель коляски.
Более подробную информацию о регистрации в GKE можно найти здесь.документ.
Кроме того, если вы используете cOS с Docker, вам следует перейти на версию containerd, поскольку первая версия былаустаревший.

Связанный контент