shipping/docker/php.dockerfile
2025-01-14 22:09:35 +01:00

51 lines
1.7 KiB
Docker

FROM php:8.3-fpm
# Environment arguments
ARG UID
ARG GID
ARG USER
ENV UID=${UID}
ENV GID=${GID}
ENV USER=${USER}
# Creating user and group
RUN groupadd -g ${GID} ${USER} \
&& useradd -m -u ${UID} -g ${GID} -s /bin/bash ${USER}
# Modify PHP-FPM configuration to use the new user's privileges.
RUN sed -i "s/user = www-data/user = '${USER}'/g" /usr/local/etc/php-fpm.d/www.conf \
&& sed -i "s/group = www-data/group = '${USER}'/g" /usr/local/etc/php-fpm.d/www.conf \
&& echo "php_admin_flag[log_errors] = on" >> /usr/local/etc/php-fpm.d/www.conf
# Update and install necessary packages
RUN apt-get update && apt-get install -y \
bash \
git \
curl \
libxml2-dev \
unzip \
python3 python3-venv python3-pip libmupdf-dev texlive-extra-utils \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
imagemagick \
&& docker-php-ext-install pdo pdo_mysql bcmath soap intl gd \
&& docker-php-ext-configure gd --with-freetype --with-jpeg
# Installing Redis extension
RUN mkdir -p /usr/src/php/ext/redis \
&& curl -fsSL https://github.com/phpredis/phpredis/archive/5.3.4.tar.gz | tar xvz -C /usr/src/php/ext/redis --strip 1 \
&& echo 'redis' >> /usr/src/php-available-exts \
&& docker-php-ext-install redis
# Set PHP configurations for memory, execution time, and file upload sizes
RUN echo "memory_limit = 1024M" > /usr/local/etc/php/conf.d/custom-php-memlimit.ini; \
echo "max_execution_time = 500" > /usr/local/etc/php/conf.d/custom-php-time.ini; \
echo "post_max_size = 100M" > /usr/local/etc/php/conf.d/custom-php-size.ini;
# Set the default command to run PHP-FPM
CMD ["php-fpm", "-y", "/usr/local/etc/php-fpm.conf", "-R"]