当我在docker中运行php-fpm时,默认帐户为www-data,但我想在docker中以root身份运行。
我编辑了配置文件,将用户和用户组更改为root,但是我不知道如何添加-R,因此容器无法运行。
我编辑了配置文件,将用户和用户组更改为root,但是我不知道如何添加-R,因此容器无法运行。
如果您检查默认的PHP-FPM容器命令,您会发现它使用以下默认命令:php-fpm
。您可以轻松地将其覆盖为php-fpm -R
。
对于docker-compose
,我正在使用以下配置:
services:
fpm:
image: php:7.3-fpm
volumes:
- ./zzz-docker.conf:/usr/local/etc/php-fpm.d/zzz-docker.conf # Mount FPM config that runs FPM as root
command: php-fpm -R # Allow running FPM as root
; Config to run PHP FPM as root (requires the -R flag to be passed to the entrypoint)
[www]
user = root
group = root
不必挂载自定义配置并更改命令,您可以构建一个自定义镜像,在Dockerfile中添加此配置文件,其格式如下所示:
FROM php:7.3-fpm
COPY ./zzz-docker.conf /usr/local/etc/php-fpm.d/zzz-docker.conf
CMD ["php-fpm", "-R"]
zzz-docker.conf
文件位于项目的根目录中。以下是如何以root用户身份运行bash的方法:
首先,找到php-fpm的docker容器ID:
$ docker ps
p, 0.0.0.0:8008->80/tcp webserver
e4689b3c1bc5 php:7.2-fpm "docker-php-entrypoi…" 2 months ago Up 41 hours 9000/tcp
$ docker exec -u 0 -it e4689b3c1bc5 bash
root@e4689b3c1bc5:/var/www#
www-data
启动您的aria2。这样,PHP的安全问题就不会有可能危及系统中的所有文件。 - Koala Yeung