# Use official PHP image with Apache FROM php:8.1-apache # Set working directory WORKDIR /var/www/html # Set ServerName to suppress Apache warnings RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf # Install system dependencies RUN apt-get update && apt-get install -y \ default-mysql-client \ git \ curl \ zip \ unzip \ && rm -rf /var/lib/apt/lists/* # Enable Apache modules RUN a2enmod rewrite \ && a2enmod headers # Install PHP extensions RUN docker-php-ext-install \ mysqli \ pdo \ pdo_mysql # Set PHP configuration RUN echo "display_errors = On" >> /usr/local/etc/php/conf.d/php.ini \ && echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/php.ini \ && echo "date.timezone = Asia/Jakarta" >> /usr/local/etc/php/conf.d/php.ini # Copy project files COPY 01 /var/www/html # Set permissions RUN chown -R www-data:www-data /var/www/html # Expose port 80 EXPOSE 80 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \ CMD curl -f http://localhost/ || exit 1 # Start Apache CMD ["apache2-foreground"]