FROM php:8.4-apache # Install system dependencies RUN apt-get update && apt-get install -y \ libxml2-dev \ libzip-dev \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ unzip \ git \ && rm -rf /var/lib/apt/lists/* # Install PHP extensions RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install \ pdo \ pdo_mysql \ mysqli \ xml \ simplexml \ zip \ gd # Enable Apache modules RUN a2enmod rewrite headers # Configure PHP upload limits RUN echo "upload_max_filesize = 50M" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "post_max_size = 50M" >> /usr/local/etc/php/conf.d/uploads.ini \ && echo "max_execution_time = 300" >> /usr/local/etc/php/conf.d/uploads.ini # Configure Apache COPY apache.conf /etc/apache2/sites-available/000-default.conf # Set working directory WORKDIR /var/www/html # Copy application files COPY . /var/www/html # Create uploads directory RUN mkdir -p /var/www/html/uploads && chmod 777 /var/www/html/uploads # Set permissions RUN chown -R www-data:www-data /var/www/html EXPOSE 80 CMD ["apache2-foreground"]