FROM php:8.4-apache ENV PHP_MEMORY_LIMIT=256M ENV PHP_MAX_EXECUTION_TIME=30 ENV PHP_ERROR_REPORTING="E_ERROR | E_WARNING | E_PARSE" RUN apt-get update && apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev libzip-dev unzip && apt-get clean && rm -rf /var/lib/apt/lists/* RUN docker-php-ext-configure gd --with-freetype --with-jpeg && docker-php-ext-install -j$(nproc) gd mysqli pdo_mysql zip opcache RUN sed -i 's/VirtualHost \*:80/VirtualHost *:8080/' /etc/apache2/sites-available/000-default.conf && \ sed -i 's/^Listen 80$/Listen 8080/' /etc/apache2/ports.conf RUN mkdir -p /usr/local/etc/php/conf.d/ COPY docker-php.ini /usr/local/etc/php/conf.d/docker-php.ini RUN a2enmod headers && a2enmod rewrite && sed -i 's/ServerTokens OS/ServerTokens Prod/' /etc/apache2/conf-enabled/security.conf && sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/conf-enabled/security.conf RUN echo 'PassEnv MYSQL_PASSWORD' >> /etc/apache2/sites-available/000-default.conf && echo 'PassEnv MYSQL_USER' >> /etc/apache2/sites-available/000-default.conf && echo 'PassEnv MYSQL_HOST' >> /etc/apache2/sites-available/000-default.conf RUN groupadd -g 1000 appuser && useradd -u 1000 -g appuser -m -s /bin/bash appuser && chown -R appuser:appuser /var/www/html WORKDIR /var/www/html COPY . /var/www/html RUN chown -R appuser:appuser /var/www/html EXPOSE 8080/tcp CMD apache2-foreground