Hi, I'm an apprentice about moodle and docker.
I am disclosing the settings I used on the docker.
The moodle is running ok. But there may be something else that I’m forgetting.
ideas are welcome
***************************1º PASSO**************************************
docker volume create moodle-man-vol
docker volume create moodle-man-arch
***************************2º PASSO******************************************
docker run -d \
--name moodle-man-db \
-p 1001:3306 \
--mount src=moodle-man-vol,dst=/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD="moodle_password" \
-e MYSQL_DATABASE="moodle" \
-e MYSQL_USER="moodle_user" \
-e MYSQL_PASSWORD="moodle_pass" \
mysql:5.7.30
***************************3º PASSO - Criar Dockerfile*******************************************
#cria a imagem de PHP com apache
FROM php:7.4-apache
RUN apt-get update \
&& apt-get install -y wget unzip
RUN docker-php-ext-install -j$(nproc) mysqli
RUN set -eux; apt-get update; apt-get install -y libzip-dev
#descarrega instala as librarias
RUN apt-get update \
&& apt-get install -f -y --no-install-recommends \
rsync \
netcat \
curl \
libicu-dev \
libmemcached-dev \
libz-dev \
libpq-dev \
libjpeg-dev \
libfreetype6-dev \
libmcrypt-dev \
libbz2-dev \
libjpeg62-turbo-dev \
gnupg \
libldap2-dev \
libpng-dev \
libxslt-dev \
unixodbc-dev \
uuid-dev \
ghostscript \
libaio1 \
libgss3 \
libicu63 \
libxslt1.1 \
locales \
sassc \
unixodbc \
unzip \
zip \
libmemcached11 \
libldap-2.4-2
#instalação de extensões de php para que funcione corretamente
RUN docker-php-ext-configure soap --enable-soap \
&& docker-php-ext-configure bcmath --enable-bcmath \
&& docker-php-ext-configure pcntl --enable-pcntl \
&& docker-php-ext-configure zip \
&& docker-php-ext-configure ldap --with-libdir=lib/x86_64-linux-gnu/ \
&& docker-php-ext-install -j$(nproc) zip opcache pgsql intl soap xmlrpc bcmath pcntl sockets ldap
RUN docker-php-ext-configure gd \
--with-freetype=/usr/include/ \
--with-jpeg=/usr/include/ \
--enable-gd
RUN docker-php-ext-install gd
RUN pecl install apcu igbinary memcached mongodb redis uuid xmlrpc-beta \
&& docker-php-ext-enable apcu igbinary memcached mongodb redis uuid xmlrpc
RUN apt-get autopurge -y \
&& apt-get autoremove -y \
&& apt-get autoclean \
RUN apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
WORKDIR /var/www/html
#decarrega a versão do moodle e descomprime
RUN wget https://download.moodle.org/download.php/direct/stable310/moodle-latest-310.tgz \
&& tar -zxvf moodle-latest-310.tgz \
&& chmod 0755 /var/www/html -R
#Dar permissões de usuário a pasta
RUN chown www-data.www-data /var/www/html -R
# Cria a pasta do arquivo moodledata e dá permissões
RUN mkdir /var/www/moodledata && \
chmod 0770 /var/www/moodledata -R
#dá permissões de usuario a pasta moodle data
RUN chown www-data /var/www/moodledata -R
EXPOSE 80
***************************4º PASSO - Criar imagem*******************************************
docker build -t moodle-pmac:1.0 .
**************5º PASSO - Criar Container da Aplicação e associar à imagem************************
docker run -d \
--name moodle-man-app \
-p 9090:80 \
--mount src=moodle-man-arch,dst=/var/www/moodledata \
-e MOODLE_DATABASE_NAME="moodle" \
-e MOODLE_DATABASE_USER="moodle_user" \
-e MOODLE_DATABASE_PASSSWORD="moodle_pass" \
-e MOODLE_DATABASE_HOST="moodle-man-db" \
moodle-pmac:1.0
*******************************6º PASSO - Criar conexões*****************************************
docker network create --attachable moodle-network
docker network connect moodle-network moode-man-db
docker network connect moodle-network moodle-man-app
docker restart moodle-man-app
docker restart moodle-man-db
*****************************9º Passo - Configurar o Cron***************************************
O cron.php é o script que roda todas as tarefas essencias para o bom funcionamento do moodle.
apt-get update
apt-get cron
cd /etc
nano crontab
#adicione a seguinte linha em crontab
*/1 * * * * root php -q -f /var/www/html/moodle/admin/cli/cron.php > /var/log/moodle_cron.log
#reinicie o serviço cron
/etc/init.d/cron restart