#php #docker #docker-compose #bitnami
#php #docker #docker-compose #bitnami
Вопрос:
Я запустил контейнер docker php-fpm со следующей конфигурацией
php-fpm:
tty: true
image: bitnami/php-fpm:latest
volumes:
- ./www:/www
php-fpm выполняется как daemon: daemon. Как правильно изменить пользователя / группу для контейнера? Например, запустите его как www: www…
Ответ №1:
Встроите это в свой образ 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
получены из поиска bitnami/php-fpm
изображения в Docker Hub и, в свою очередь, перехода по ссылке на Dockerfile изображения.)
Тогда вашему docker-compose.yml
файлу просто нужно указать детали, чтобы использовать этот Dockerfile. Вам не нужно volumes:
; код уже встроен в изображение.
version: '3.8'
services:
php-fpm:
build: .
# ports: ['9000:9000']
# no volumes:
На практике обычно не имеет большого значения, с каким конкретным идентификатором пользователя выполняется процесс контейнера, если он не является (или, в зависимости от ваших потребностей, является) специальным root
пользователем (с идентификатором пользователя 0). Не должно быть разницы между процессом контейнера, выполняемым как daemon
vs www
. И наоборот, глядя на bitnami/php-fpm
Dockerfile, для меня не очевидно, что что-либо может привести к тому, что контейнер не будет запускаться от имени root.