FROM php:7.4-apache # Install system dependencies RUN apt-get update && apt-get install -y \ git \ unzip \ nano \ curl \ wget \ cron \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libxml2-dev \ libzip-dev \ libonig-dev \ libicu-dev \ libxslt-dev \ libmcrypt-dev \ zlib1g-dev \ libssl-dev \ libcurl4-openssl-dev \ libpq-dev \ libmagickwand-dev \ --no-install-recommends \ && rm -rf /var/lib/apt/lists/* # Install PHP extensions (fast method) ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ RUN chmod +x /usr/local/bin/install-php-extensions RUN install-php-extensions \ gd \ intl \ mbstring \ xml \ xmlrpc \ soap \ zip \ pdo_mysql \ mysqli \ opcache \ xsl \ curl \ exif \ redis \ imagick # Enable Apache mods RUN a2enmod rewrite headers # Install Moosh RUN cd /opt && \ wget https://moodle.org/plugins/download.php/33902/moosh_moodle45_2024111400.zip && \ unzip moosh_moodle45_2024111400.zip && \ ln -s /opt/moosh/moosh.php /usr/local/bin/moosh && \ rm moosh_moodle45_2024111400.zip # PHP config COPY moodle-php.ini /usr/local/etc/php/conf.d/moodle-php.ini # Moodle data dir RUN mkdir -p /var/www/moodledata && \ chown -R www-data:www-data /var/www/moodledata && \ chmod -R 770 /var/www/moodledata # Cron COPY moodle-cron /etc/cron.d/moodle-cron RUN chmod 0644 /etc/cron.d/moodle-cron && \ crontab /etc/cron.d/moodle-cron # Startup script COPY start.sh /usr/local/bin/ RUN chmod +x /usr/local/bin/start.sh WORKDIR /var/www/html ENTRYPOINT ["/usr/local/bin/start.sh"]