[英]what user is php-fpm running in docker or without docker?
[英]Change user/group for PHP-FPM (Docker)
我使用以下配置运行 docker php-fpm 容器
php-fpm:
tty: true
image: bitnami/php-fpm:latest
volumes:
- ./www:/www
php-fpm 作为 daemon:daemon 运行。 如何正确更改容器的用户/组? 例如,将其运行为 www:www...
将此构建到您的 Docker 映像中。 在您的 Dockerfile 中:
FROM bitnami/php-fpm:latest # (Debian-based)
# Create the non-root runtime user. It does not need a
# specific uid, shell, home directory, or other settings.
RUN adduser --system --no-create-home --group www
# Copy the files in as root, so they don't accidentally get
# overwritten at runtime
# (The base image sets WORKDIR /app)
COPY www ./
# Then set the runtime user
USER www
# The base image provides a useful CMD; leave it as is
(基本图像的WORKDIR
和CMD
周围的一些细节来自在 Docker Hub 上查找bitnami/php-fpm
图像,然后依次点击指向图像 Z3254677A71217C6C01FF5C2的链接。)
那么您的docker-compose.yml
文件只需要指定详细信息即可使用此 Dockerfile。 您不需要volumes:
代码已经内置到图像中。
version: '3.8'
services:
php-fpm:
build: .
# ports: ['9000:9000']
# no volumes:
在实践中,容器进程运行的特定用户 ID 通常并不重要,只要它不是(或者,根据您的需要,是)特殊的root
用户(用户 ID 为 0)。 作为daemon
进程运行的容器进程与www
之间应该没有区别。 相反,查看bitnami/php-fpm
Dockerfile,对我来说并不明显有任何事情会导致容器无法以 root 身份运行。
我没有创建 Dockerfile,而是创建了一个 common.conf 文件:
user=www-data
group=www-data
listen.owner=www-data
listen.group=www-data
在 docker-compose.yml 中:
php:
image: bitnami/php-fpm:8.0 # or any other
...
volumes:
# path to common.conf may differ if using a different image
- ./path-to/common.conf:/opt/bitnami/php/etc/common.conf:ro
为了检查用户,我有一个 index.php:
<?php
echo exec('whoami');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.