Есть два 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.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"]
- Для NGINX заменяет все вхождения пользовательских www-данных на laravel в /etc/nginx/nginx. conf;
- Для PHP он делает то же самое: заменяет вхождения www-данных пользователей и групп на laravel.
Вопрос 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"]
If Я правильно понимаю, это значит, что PHP-FPM будет работать от root? Если да, то он не будет работать от имени пользователя laravel, которого мы добавили, и, следовательно, какой смысл добавлять пользователя laravel?
Подробнее здесь: https://stackoverflow.com/questions/772 ... user-group
Мобильная версия