为什么 Docker PHP 容器在 Ubuntu 主机上运行但在 Manjaro 主机上运行不起来

为什么 Docker PHP 容器在 Ubuntu 主机上运行但在 Manjaro 主机上运行不起来

我使用 Manjaro Xfce 设置了我的新笔记本电脑并很喜欢它,但我无法让我的主要开发项目在新主机上运行。

该项目有 10 多名开发人员使用,其中 9 人使用 Ubuntu,1 人使用 Macbook。他们没有遇到任何问题,但当我运行它时,一切正常,直到最后一刻,supervisord 运行 php-fpm 时,我看到了这个错误。

ERROR: Unable to globalize '/etc/php/7.3/fpm/pool.d/*.conf' (ret=2) from /etc/php/7.3/fpm/php-fpm.conf at line 143.
ERROR: failed to load configuration file '/etc/php/7.3/fpm/php-fpm.conf'
ERROR: FPM initialization failed

这不是文件夹问题,我检查了又检查。与其他安装的配置和构建完全相同。我检查了 docker 版本,它们都很好。

我试图规避这个问题并复制自定义的 php-fpm.conf 并注释掉文件中包含“/etc/php/7.3/fpm/pool.d/*.conf”的最后一行

这给了我一个新的错误。

WARNING: [pool www] child 331 said into stderr: "NOTICE: PHP message: PHP Warning:  Unknown: failed to open stream: Permission denied in Unknown on line 0"
WARNING: [pool www] child 331 said into stderr: "ERROR: Unable to open primary script: /app/html/home.php (Permission denied)"

我已经仔细检查了运行 Elementry OS 5.1(Ubuntu 18.04)的旧设置上的权限,它们是相同的并且看起来像这样。

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.0   8256  2324 ?        Ss   10:55   0:00 make serve-dev_local
root         301  0.1  0.1  59592 20604 ?        S    10:55   0:00 /usr/bin/python /usr/bin/supervisord -n --configuration /app/dock
root         304  0.2  0.3 165256 54776 ?        S    10:55   0:00 php-fpm: master process (/etc/php/7.3/fpm/php-fpm.conf)
root         305  0.0  0.0  29664  2896 ?        S    10:55   0:00 /usr/sbin/cron -f
root         306  0.0  0.0  34512  5912 ?        S    10:55   0:00 nginx: master process /usr/sbin/nginx
www-data     307  0.4  0.6 537048 104572 ?       S    10:55   0:00 php /app/artisan queue:work long --queue=long --sleep=5 --tries=1
www-data     308  0.4  0.6 462524 101792 ?       S    10:55   0:00 php /app/artisan queue:work long --queue=long --sleep=5 --tries=1
root         309  0.0  0.0 680736 13500 ?        Sl   10:55   0:00 /usr/bin/newrelic-daemon -f
root         310  0.0  0.0 254324  2964 ?        Sl   10:55   0:00 /usr/sbin/rsyslogd -n
www-data     311  0.0  0.0  34884  3400 ?        S    10:55   0:00 nginx: worker process
www-data     312  0.0  0.0  34884  2532 ?        S    10:55   0:00 nginx: worker process
www-data     313  0.0  0.0  34884  2532 ?        S    10:55   0:00 nginx: worker process
www-data     314  0.0  0.0  34884  2532 ?        S    10:55   0:00 nginx: worker process
www-data     331  0.0  0.2 165256 46296 ?        S    10:55   0:00 php-fpm: pool www
www-data     332  0.0  0.2 165256 45572 ?        S    10:55   0:00 php-fpm: pool www
www-data     333  0.0  0.2 165256 45572 ?        S    10:55   0:00 php-fpm: pool www
www-data     334  0.0  0.2 165256 45572 ?        S    10:55   0:00 php-fpm: pool www
root         424  0.0  0.0  19868  3564 pts/0    Ss   10:57   0:00 bash
root         430  0.0  0.0  38304  3300 pts/0    R+   10:57   0:00 ps aux

我不知道还要检查什么。我已经构建了一个简单的 PHP docker 容器,它运行良好,并且使用 Lando.dev 安装 Laravel,它也能正常工作。

如果您能给我指明正确的方向我将不胜感激。

答案1

我们在 php-fpm 上遇到了完全相同的问题,在 ubuntu 上工作,而不是在 manjaro 上,然后找到了解决方案。我们的docker-compose.yml文件设置为使用 运行privileged: true,这恰恰导致了 php-fpm 中的这个问题。如果遇到该错误,请确保您运行的容器不是在特权模式下,因为主机系统之间可能存在差异。

相关内容