![](/img/trans.png)
[英]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.