Docker: NGINX и PHP: зачем менять пользователя/группу по умолчанию?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Docker: NGINX и PHP: зачем менять пользователя/группу по умолчанию?

Сообщение Anonymous »

Я начал изучать Docker и настраивать NGINX и PHP. Я просмотрел несколько примеров и увидел следующий пример: https://github.com/aschmelyun/lc-the-do ... dockerfile
Есть два dockerfiles, один для NGINX (

Код: Выделить всё

nginx.dockerfile
):

Код: Выделить всё

FROM nginx:stable-alpine

ENV NGINXUSER=laravel
ENV NGINXGROUP=laravel

RUN mkdir -p /var/www/html/public

ADD nginx/default.conf /etc/nginx/conf.d/default.conf

RUN sed -i "s/user www-data/user ${NGINXUSER}/g" /etc/nginx/nginx.conf

RUN adduser -g ${NGINXGROUP} -s /bin/sh -D ${NGINXUSER}
и один для PHP (

Код: Выделить всё

php.dockerfile
):

Код: Выделить всё

FROM php:8-fpm-alpine

ENV PHPGROUP=laravel
ENV PHPUSER=laravel

RUN adduser -g ${PHPGROUP} -s /bin/sh -D ${PHPUSER}

RUN sed -i "s/user = www-data/user = ${PHPUSER}/g" /usr/local/etc/php-fpm.d/www.conf
RUN sed -i "s/group = www-data/group = ${PHPGROUP}/g" /usr/local/etc/php-fpm.d/www.conf

RUN mkdir -p /var/www/html/public

RUN docker-php-ext-install pdo pdo_mysql

CMD ["php-fpm", "-y", "/usr/local/etc/php-fpm.conf", "-R"]
В обоих случаях создаются новый пользователь и группа (пользователь laravel назначается группе laravel), а затем с помощью команды sed создаются файлы конфигурации. изменено:
  • Для NGINX заменяет все вхождения пользовательских www-данных на laravel в /etc/nginx/nginx. conf;
  • Для PHP он делает то же самое: заменяет вхождения www-данных пользователей и групп на laravel.
3 взаимосвязанных вопроса:
Вопрос 1: Делает ли это означают, что NGINX и PHP (я думаю, только FPM и CLI там не будут, потому что он извлекает базовый образ php:8-fpm-alpine из Docker Hub, который не включает CLI, верно?) будут работать как пользователь laravel внутри контейнеров? (Если да, см. также вопрос 3).
Вопрос 2: Есть ли практическая причина изменить пользователя по умолчанию для NGINX и PHP-FPM, как в примерах выше?
Вопрос 3: В php.dockerfile в конце есть такая команда:

Код: Выделить всё

CMD ["php-fpm", "-y", "/usr/local/etc/php-fpm.conf", "-R"]
Я искал в Stackoverflow, что означает этот -R, и нашел следующий ответ: https://stackoverflow.com/a/49178410/4437206
If Я правильно понимаю, это значит, что PHP-FPM будет работать от root? Если да, то он не будет работать от имени пользователя laravel, которого мы добавили, и, следовательно, какой смысл добавлять пользователя laravel?

Подробнее здесь: https://stackoverflow.com/questions/772 ... user-group
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»