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"]