Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 590206524c | |||
| c0e6b9e5d9 | |||
| 60e731b6fd |
+28
-42
@@ -1,9 +1,13 @@
|
|||||||
FROM php:8.1-apache
|
FROM php:7.4-apache
|
||||||
|
|
||||||
# Install system dependencies
|
# Install system dependencies
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
git \
|
git \
|
||||||
unzip \
|
unzip \
|
||||||
|
nano \
|
||||||
|
curl \
|
||||||
|
wget \
|
||||||
|
cron \
|
||||||
libpng-dev \
|
libpng-dev \
|
||||||
libjpeg-dev \
|
libjpeg-dev \
|
||||||
libfreetype6-dev \
|
libfreetype6-dev \
|
||||||
@@ -17,77 +21,59 @@ RUN apt-get update && apt-get install -y \
|
|||||||
libssl-dev \
|
libssl-dev \
|
||||||
libcurl4-openssl-dev \
|
libcurl4-openssl-dev \
|
||||||
libpq-dev \
|
libpq-dev \
|
||||||
nano \
|
libmagickwand-dev \
|
||||||
curl \
|
--no-install-recommends \
|
||||||
wget \
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
cron \
|
|
||||||
libmagickwand-dev --no-install-recommends
|
|
||||||
|
|
||||||
# Enable Apache mods
|
# Install PHP extensions (fast method)
|
||||||
RUN a2enmod rewrite headers
|
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
|
||||||
|
|
||||||
# Install PHP extensions required by Moodle
|
RUN chmod +x /usr/local/bin/install-php-extensions
|
||||||
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
||||||
&& docker-php-ext-install -j$(nproc) \
|
RUN install-php-extensions \
|
||||||
gd \
|
gd \
|
||||||
intl \
|
intl \
|
||||||
mbstring \
|
mbstring \
|
||||||
xml \
|
xml \
|
||||||
|
xmlrpc \
|
||||||
soap \
|
soap \
|
||||||
zip \
|
zip \
|
||||||
pdo \
|
|
||||||
pdo_mysql \
|
pdo_mysql \
|
||||||
opcache \
|
|
||||||
mysqli \
|
mysqli \
|
||||||
|
opcache \
|
||||||
xsl \
|
xsl \
|
||||||
curl \
|
curl \
|
||||||
exif
|
exif \
|
||||||
|
redis \
|
||||||
|
imagick
|
||||||
|
|
||||||
# Download and install Moosh
|
# Enable Apache mods
|
||||||
|
RUN a2enmod rewrite headers
|
||||||
|
|
||||||
|
# Install Moosh
|
||||||
RUN cd /opt && \
|
RUN cd /opt && \
|
||||||
wget https://moodle.org/plugins/download.php/33902/moosh_moodle45_2024111400.zip && \
|
wget https://moodle.org/plugins/download.php/33902/moosh_moodle45_2024111400.zip && \
|
||||||
unzip moosh_moodle45_2024111400.zip && \
|
unzip moosh_moodle45_2024111400.zip && \
|
||||||
ln -s /opt/moosh/moosh.php /usr/local/bin/moosh && \
|
ln -s /opt/moosh/moosh.php /usr/local/bin/moosh && \
|
||||||
rm moosh_moodle45_2024111400.zip # Clean up zip file
|
rm moosh_moodle45_2024111400.zip
|
||||||
|
|
||||||
|
# PHP config
|
||||||
# Install Redis extension
|
|
||||||
RUN pecl install redis && \
|
|
||||||
docker-php-ext-enable redis
|
|
||||||
|
|
||||||
RUN pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 && docker-php-ext-enable xmlrpc
|
|
||||||
|
|
||||||
# Optional: Install and enable Imagick (used by Moodle for better image processing)
|
|
||||||
RUN pecl install imagick && docker-php-ext-enable imagick
|
|
||||||
|
|
||||||
# Install Xdebug
|
|
||||||
RUN pecl install xdebug \
|
|
||||||
&& docker-php-ext-enable xdebug
|
|
||||||
|
|
||||||
# Set recommended PHP configuration values for Moodle
|
|
||||||
COPY moodle-php.ini /usr/local/etc/php/conf.d/moodle-php.ini
|
COPY moodle-php.ini /usr/local/etc/php/conf.d/moodle-php.ini
|
||||||
|
|
||||||
# Copy custom php.ini
|
# Moodle data dir
|
||||||
COPY ./xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
|
||||||
|
|
||||||
# Create moodledata directory
|
|
||||||
RUN mkdir -p /var/www/moodledata && \
|
RUN mkdir -p /var/www/moodledata && \
|
||||||
chown -R www-data:www-data /var/www/moodledata && \
|
chown -R www-data:www-data /var/www/moodledata && \
|
||||||
chmod -R 770 /var/www/moodledata
|
chmod -R 770 /var/www/moodledata
|
||||||
|
|
||||||
|
# Cron
|
||||||
# Set up Moodle cron job
|
|
||||||
COPY moodle-cron /etc/cron.d/moodle-cron
|
COPY moodle-cron /etc/cron.d/moodle-cron
|
||||||
RUN chmod 0644 /etc/cron.d/moodle-cron && \
|
RUN chmod 0644 /etc/cron.d/moodle-cron && \
|
||||||
crontab /etc/cron.d/moodle-cron
|
crontab /etc/cron.d/moodle-cron
|
||||||
|
|
||||||
# Create startup script to run cron and apache
|
# Startup script
|
||||||
COPY start.sh /usr/local/bin/
|
COPY start.sh /usr/local/bin/
|
||||||
RUN chmod +x /usr/local/bin/start.sh
|
RUN chmod +x /usr/local/bin/start.sh
|
||||||
|
|
||||||
# Set working directory
|
|
||||||
WORKDIR /var/www/html
|
WORKDIR /var/www/html
|
||||||
|
|
||||||
# Set entrypoint to our startup script
|
ENTRYPOINT ["/usr/local/bin/start.sh"]
|
||||||
ENTRYPOINT ["/usr/local/bin/start.sh"]
|
|
||||||
|
|
||||||
@@ -48,6 +48,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: 'redis:alpine'
|
image: 'redis:alpine'
|
||||||
|
restart: always
|
||||||
volumes:
|
volumes:
|
||||||
- ./redis_data:/data
|
- ./redis_data:/data
|
||||||
healthcheck:
|
healthcheck:
|
||||||
|
|||||||
@@ -2,4 +2,3 @@ upload_max_filesize = 128M
|
|||||||
post_max_size = 128M
|
post_max_size = 128M
|
||||||
memory_limit = 512M
|
memory_limit = 512M
|
||||||
max_execution_time = 300
|
max_execution_time = 300
|
||||||
max_input_vars = 10000
|
|
||||||
-11
@@ -1,11 +0,0 @@
|
|||||||
zend_extension=xdebug
|
|
||||||
|
|
||||||
xdebug.mode=debug
|
|
||||||
xdebug.start_with_request=yes
|
|
||||||
xdebug.client_host=172.17.80.1
|
|
||||||
xdebug.client_port=9003
|
|
||||||
xdebug.log=/tmp/xdebug.log
|
|
||||||
|
|
||||||
; Optional for development
|
|
||||||
xdebug.discover_client_host=true
|
|
||||||
xdebug.idekey=VSCODE
|
|
||||||
Reference in New Issue
Block a user