51 lines
1.7 KiB
Docker
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"]
|