FROM php:8.1-fpm-alpine ARG UID ARG GID ARG USER ENV UID=${UID} ENV GID=${GID} ENV USER=${USER} # Удаляем группу, которая мешает созданию пользователя с нужным GID RUN delgroup dialout # Создаём системного пользователя RUN addgroup -g ${GID} --system ${USER} RUN adduser -G ${USER} --system -D -s /bin/sh -u ${UID} ${USER} # Настраиваем PHP-FPM под нашего пользователя RUN sed -i "s/user = www-data/user = ${USER}/g" /usr/local/etc/php-fpm.d/www.conf RUN sed -i "s/group = www-data/group = ${USER}/g" /usr/local/etc/php-fpm.d/www.conf RUN echo "php_admin_flag[log_errors] = on" >> /usr/local/etc/php-fpm.d/www.conf # Устанавливаем зависимости для MySQL RUN apk add --no-cache mariadb-connector-c-dev # Устанавливаем build-зависимости временно RUN apk add --no-cache --virtual .build-deps \ $PHPIZE_DEPS \ mariadb-dev \ linux-headers # Устанавливаем PHP-расширения RUN docker-php-ext-install pdo pdo_mysql bcmath # Устанавливаем Redis RUN pecl install redis \ && docker-php-ext-enable redis # Удаляем временные build-зависимости RUN apk del --no-cache .build-deps # Устанавливаем Composer COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer # Переключаемся на непривилегированного пользователя USER ${USER} WORKDIR /app CMD ["php-fpm", "-y", "/usr/local/etc/php-fpm.conf", "-R"]