49 lines
1.6 KiB
Docker
49 lines
1.6 KiB
Docker
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"] |