64 lines
1.4 KiB
Docker
64 lines
1.4 KiB
Docker
FROM php:8.3-fpm-alpine
|
|
|
|
# Install system deps
|
|
RUN apk add --no-cache \
|
|
bash \
|
|
git \
|
|
icu-dev \
|
|
libzip-dev \
|
|
libxml2-dev \
|
|
oniguruma-dev \
|
|
g++ \
|
|
make \
|
|
nodejs \
|
|
npm \
|
|
shadow
|
|
|
|
# Install PHP extension installer
|
|
COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/local/bin/
|
|
|
|
# Install PHP extensions
|
|
RUN install-php-extensions \
|
|
intl \
|
|
pdo_mysql \
|
|
opcache \
|
|
zip \
|
|
tokenizer \
|
|
ctype \
|
|
iconv \
|
|
mbstring \
|
|
dom \
|
|
xml \
|
|
simplexml \
|
|
xmlreader \
|
|
xmlwriter
|
|
|
|
# Install composer
|
|
ENV COMPOSER_ALLOW_SUPERUSER=1 \
|
|
COMPOSER_HOME=/tmp/composer
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
# Configure PHP
|
|
COPY docker/php/php.ini $PHP_INI_DIR/conf.d/zz-custom.ini
|
|
|
|
# Adjust www-data UID/GID to match host user (default 1000)
|
|
ARG USER_ID=1000
|
|
ARG GROUP_ID=1000
|
|
|
|
RUN if [ ${USER_ID:-0} -ne 0 ] && [ ${GROUP_ID:-0} -ne 0 ]; then \
|
|
userdel -f www-data &&\
|
|
if getent group www-data ; then groupdel www-data; fi &&\
|
|
groupadd -g ${GROUP_ID} www-data &&\
|
|
useradd -l -u ${USER_ID} -g www-data www-data &&\
|
|
install -d -m 0755 -o www-data -g www-data /home/www-data \
|
|
;fi
|
|
|
|
WORKDIR /var/www/html
|
|
|
|
# Set permissions for Symfony directories
|
|
RUN mkdir -p var/cache var/log var/sessions && \
|
|
chown -R www-data:www-data var
|
|
|
|
# Default command
|
|
CMD ["php-fpm"]
|