11FROM php:8.3-fpm
22
3- # Устанавливаем пользователя/группу из аргументов
4- ARG UID=${UID}
5- ARG GID=${GID}
6- ARG APP_ENV=${APP_ENV}
3+ ARG USER_ID
4+ ARG GROUP_ID
5+ ARG APP_ENV
76
87# Устанавливаем необходимые зависимости
98RUN apt-get update && apt-get install -y \
@@ -15,7 +14,9 @@ RUN apt-get update && apt-get install -y \
1514 make \
1615 curl \
1716 zip \
18- git
17+ git \
18+ && apt-get clean \
19+ && rm -rf /var/lib/apt/lists/*
1920
2021# Расширения PHP
2122RUN docker-php-ext-install zip pdo pdo_mysql pdo_pgsql
@@ -24,15 +25,17 @@ RUN docker-php-ext-install zip pdo pdo_mysql pdo_pgsql
2425RUN echo "alias ll='ls -alF'" >> /etc/bash.bashrc
2526RUN echo 'source /etc/bash_completion' >> /etc/bash.bashrc
2627
27- # Пользователь и права
28- RUN groupmod -g ${GID} www-data && \
29- usermod -u ${UID} www-data && \
30- chown -R ${UID}:${GID} /var/www/html
28+ # Создаем группу и пользователя
29+ RUN groupadd -g ${GROUP_ID} appgroup && \
30+ useradd -u ${USER_ID} -g appgroup -m appuser
31+
32+ # Устанавливаем права на директории
33+ RUN chown -R appuser:appgroup /var/www/html
3134
3235# Логи Xdebug (только для dev)
33- RUN if [ "$APP_ENV" = "dev" ]; then \
36+ RUN if [ "${ APP_ENV} " = "dev" ]; then \
3437 mkdir -p /var/log/xdebug && \
35- chown -R ${UID}:${GID} /var/log/xdebug && \
38+ chown -R appuser:appgroup /var/log/xdebug && \
3639 chmod -R 766 /var/log/xdebug; \
3740 fi
3841
@@ -46,7 +49,7 @@ RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
4649 && php -r "unlink('composer-setup.php');"
4750
4851# Xdebug (только для dev)
49- RUN if [ "$APP_ENV" = "dev" ]; then \
52+ RUN if [ "${ APP_ENV} " = "dev" ]; then \
5053 pecl install xdebug && \
5154 docker-php-ext-enable xdebug && \
5255 pecl clear-cache \
@@ -56,15 +59,18 @@ RUN if [ "$APP_ENV" = "dev" ]; then \
5659# Устанавливаем рабочую директорию
5760WORKDIR /var/www/html
5861
62+ # Устанавливаем пользователя в окружении
63+ USER appuser
64+
5965# Копируем все файлы
6066COPY . .
6167
6268# Устанавливаем зависимости
63- RUN if [ "$APP_ENV" = "prod" ]; then \
69+ RUN if [ "${ APP_ENV} " = "prod" ]; then \
6470 composer install --no-dev --optimize-autoloader --no-interaction --prefer-dist; \
6571 else \
6672 composer install --no-interaction --prefer-dist; \
6773 fi
6874
6975# Указываем пользователя для выполнения команд
70- USER ${UID}:${GID}
76+ USER appuser:appgroup
0 commit comments