Production-ready Moodle image on PHP 8.3 Apache with built-in cron worker.
330
kelsoncm/moodle)Imagem Docker otimizada para o Moodle, pronta para ambientes de desenvolvimento e produção. Baseada na imagem oficial php:8.3-apache-bookworm, contendo todas as extensões PHP necessárias pré-instaladas, suporte a banco de dados PostgreSQL/MariaDB, probes de saúde e gerenciamento de processos via Supervisord (executando Apache2 e o Worker do Moodle Cron simultaneamente).
gd, intl, mysqli, pgsql, opcache, zip, soap, xmlrpc, ldap, etc.).cron.php do Moodle via worker gerenciado pelo Supervisord sem a necessidade de contêineres adicionais ou cronjobs no host.CFG_*./probes para monitoramento de disponibilidade, banco de dados e cron.docker-compose.ymlservices:
db:
image: postgres:17-alpine
ports:
- "5417:5432"
environment:
- POSTGRES_HOST=db
- POSTGRES_PORT=5432
- POSTGRES_DATABASE=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
command: >
-c work_mem=500MB -c maintenance_work_mem=500MB -c max_wal_size=10GB
volumes:
- moodle_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "psql", "-h", "127.0.0.1", "-U", "postgres"]
interval: 3s
timeout: 3s
retries: 3
start_period: 10s
moodle:
image: kelsoncm/moodle:5.3.0.001
ports:
- "8080:80"
environment:
# Conexão com o Banco de Dados
- CFG_DBHOST=db
- CFG_DBPORT=5432
- CFG_DBNAME=postgres
- CFG_DBUSER=postgres
- CFG_DBPASS=postgres
- CFG_PREFIX=mdl_
# Parâmetros da Aplicação
- CFG_WWWROOT=http://localhost:8080
- CFG_ENV=local
- CFG_DEBUG=false
# Credenciais do Administrador (utilizados na instalação automática inicial)
- CFG_ADMINUSER=admin
- CFG_ADMINPASS=admin
- [email protected]
- CFG_FULLNAME=Meu Moodle
- CFG_SHORTNAME=Meu Moodle
# Probes de Saúde
- CFG_PROBES_TOKEN=changeme
- CFG_PROBES_POSTGRESQL=true
- CFG_PROBES_CRONJOB=true
- CFG_PROBES_TASKS=true
volumes:
- moodle_data:/var/www/moodledata
- moodle_logs:/var/log/moodle
- moodle_apache2logs:/var/log/apache2
depends_on:
db:
condition: service_healthy
volumes:
moodle_db:
moodle_data:
moodle_logs:
moodle_apache2logs:
CFG_*)| Variável | Descrição | Valor Padrão |
|---|---|---|
CFG_DBHOST | Host do banco de dados | db |
CFG_DBPORT | Porta do banco de dados | 5432 |
CFG_DBNAME | Nome do banco de dados | postgres |
CFG_DBUSER | Usuário do banco de dados | postgres |
CFG_DBPASS | Senha do banco de dados | postgres |
CFG_PREFIX | Prefixo das tabelas | mdl_ |
| Variável | Descrição | Valor Padrão |
|---|---|---|
CFG_WWWROOT | URL pública de acesso ao Moodle | http://localhost:8080 |
CFG_ENV | Ambiente (local, dev, prod) | local |
CFG_DEBUG | Habilita modo de depuração no Moodle | false |
| Variável | Descrição |
|---|---|
CFG_ADMINUSER | Usuário administrador inicial |
CFG_ADMINPASS | Senha do administrador inicial |
CFG_ADMINEMAIL | E-mail do administrador |
CFG_FULLNAME | Nome completo do site |
CFG_SHORTNAME | Nome curto do site |
docker compose exec -T moodle php admin/cli/purge_caches.php
docker compose exec -T moodle php admin/cli/upgrade.php --non-interactive
docker compose exec moodle supervisorctl status
docker compose exec moodle supervisorctl restart moodle-cron
O código fonte desta imagem e os arquivos de orquestração estão mantidos no GitHub: https://github.com/moodle-by-kelsoncm/docker-compose
Content type
Image
Digest
sha256:8878a4826…
Size
376.9 MB
Last updated
6 days ago
docker pull kelsoncm/moodle:4.5.15.001