FROM debian:bookworm

# Install Apache, PHP, and other required extensions
RUN apt-get update && apt-get install -y \
    apache2 \
    php \
    php-cli \
    php-gd \
    php-mysql \
    php-intl \
    php-curl \
    php-xml \
    php-xmlrpc \
    php-soap \
    php-zip \
    php-mbstring \
    unzip \
    git \
    && rm -rf /var/lib/apt/lists/*

# Add custom PHP settings for Moodle
# We copy it to both the apache2 and cli config directories
COPY moodle.ini /etc/php/8.2/apache2/conf.d/99-moodle.ini
COPY moodle.ini /etc/php/8.2/cli/conf.d/99-moodle.ini

# Download and unpack Moodle
ARG MOODLE_VERSION=403
RUN rm -rf /var/www/html
RUN git clone --depth 1 --branch MOODLE_${MOODLE_VERSION}_STABLE https://github.com/moodle/moodle.git /var/www/html/

# Create the moodledata directory
RUN mkdir /var/www/moodledata && chown -R www-data:www-data /var/www/moodledata

# Set correct permissions
WORKDIR /var/www/html
RUN chown -R www-data:www-data /var/www/html

# Copy a startup script
COPY --chown=root:root docker-entrypoint.sh /
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["apache2ctl", "-D", "FOREGROUND"]
