如何以非 root 用户身份运行 PHP-FPM 主进程?

如何以非 root 用户身份运行 PHP-FPM 主进程?

我正在尝试实现在 Kubernetes 中运行的无根 PHP-FPM pod。

php-fpm -FO我尝试通过以用户身份执行的 init 脚本在 Kubernetes pod 中简单地运行进程,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 的更多信息,请参阅此文档
此外,如果您使用的是带有 Docker 的 cOS,则应切换到 containerd 版本,因为前者已经已弃用

相关内容