
Infraestructura
Moodle™ en Docker después de Bitnami: el relevo cabe en una línea
Las imágenes gratuitas de Moodle de Bitnami dejaron de actualizarse en agosto de 2025. Así se pasa un campus a una imagen mantenida sin exportar nada: mismo compose, mismos volúmenes, misma base de datos y una línea distinta.
Publicada el 6 min de lectura

Durante años, la forma más rápida de levantar un Moodle™ en Docker fue la imagen de Bitnami. Tenía buena documentación, variables claras y un compose de ejemplo que funcionaba a la primera. Se descargó más de 28 millones de veces y sostiene campus de colegios, academias y empresas en medio mundo.
En agosto de 2025 eso cambió. Bitnami dejó de actualizar sus imágenes gratuitas: bitnami/moodle se congeló el 19 de agosto y bitnamilegacy/moodle, el repositorio al que se trasladaron, el 23. Los sitios siguen arrancando, pero se quedan para siempre en la versión que tenían ese día.
bitnami/moodledeja de actualizarsebitnamilegacy/moodle, tambiénMoodle 5.0 se queda sin parches de seguridad
Moodle 5.3, la nueva LTS, en
oksigenia/moodle
Qué supone quedarse en una imagen congelada
Una imagen de Docker es mucho más que Moodle. Lleva un sistema operativo, PHP, Apache y decenas de librerías, y todas reciben parches de seguridad cada semana. En una imagen congelada, ninguno llega.

A eso se suma el propio Moodle. Cada rama tiene una fecha de fin de soporte, y la 5.0 dejó de recibir parches de seguridad el 5 de octubre de 2026. Un campus en bitnamilegacy/moodle:5.0.2 queda expuesto en dos frentes: el del sistema que lo rodea y el de la aplicación.
Lo habitual en estos casos es plantear una migración completa: exportar cursos, montar un servidor nuevo, importar y cruzar los dedos. No hace falta.
¿Prefieres no ocuparte? Te lo hacemos todo Instalamos tu Moodle o migramos el que ya tienes, con copia previa y sin cortar las clases. Lo alojamos, con el servidor incluido, y lo mantenemos al día.
Encárganos tu MoodleEl relevo: cambiar una línea
Hemos publicado oksigenia/moodle, una imagen libre (GPL-3.0) pensada para sustituir a la de Bitnami sin tocar nada más. Acepta las mismas variables, usa los mismos volúmenes (/bitnami/moodle y /bitnami/moodledata) y escucha en los mismos puertos, el 8080 y el 8443. En tu docker-compose.yml, el cambio es este:
moodle:- image: bitnamilegacy/moodle:5.0.2+ image: oksigenia/moodle:5.3
Después, lo de siempre:
docker compose pull moodle
docker compose up -d moodle
docker compose logs -f moodle
Qué hace la imagen al arrancar
Cuando el contenedor encuentra una instalación de Bitnami, sigue cinco pasos en orden:
Lee tu configuración de
config.php, como Bitnami, y guarda el original.Hace copia de la base de datos y del código, antes de tocar nada.
Cambia el núcleo y conserva tus plugins: temas, actividades, bloques.
Actualiza la base de datos y ajusta lo que piden las versiones nuevas.
Arranca Apache y el cron, en los mismos puertos.

Así queda el log de una migración de prueba, de la 5.0.2 a la 5.3:
[moodle] Giving www-data ownership of the code in /bitnami/moodle
[moodle] Using bitnami/moodle variable names (they keep working; the native names are:
MOODLE_DATABASE_HOST -> MOODLE_DB_HOST, MOODLE_DATABASE_PORT_NUMBER -> MOODLE_DB_PORT, …
[moodle] oksigenia/moodle: Moodle 5.3.0, role all, bitnami layout
[moodle] Updating Moodle code: 5.0.2 (Build: 20250811) -> 5.3 (Build: 20261005)
[moodle] Using the existing config.php (database settings come from it)
[moodle] Backing up the current code to …/backups/20261005T085146Z/code.tar.gz
[moodle] Backing up the database to …/backups/20261005T085146Z/database.sql.gz
[moodle] Keeping add-on local_oksitest (local/oksitest -> public/local/oksitest)
[moodle] Not carried over, Moodle removed them from core: qtype_random
block_activity_modules block_section_links tool_moodlenet theme_classic h5plib_v127
[moodle] Upgrading the Moodle database
…
Command line upgrade from 5.0.2 (Build: 20250811) (2025041402) to 5.3 (Build: 20261005)
(2026100500) completed successfully.
[moodle] Database upgrade finished
[moodle] Moodle is ready at the address in config.phpbitnamilegacy/moodle:5.0.2 a oksigenia/moodle:5.3, con un plugin de prueba. Solo se han quitado líneas intermedias (…) y partido las más largas. En este sitio, pequeño, pasaron 87 segundos desde el arranque hasta «Moodle is ready», copias incluidas.En producción
- 92 GBde datos
- 605tablas
- 213 shasta quedar listo
- 12 de 12plugins de terceros conservados
El campus de un colegio pasó de la 4.5 a la 5.2 con la imagen, la noche del 4 al 5 de octubre de 2026. Los recuentos de antes y después coincidieron uno a uno: usuarios, cursos, matrículas, notas, ficheros y 30.668 intentos de cuestionario.
Si algo no encaja, la imagen se detiene antes de actualizar y explica en el log qué pasa y cómo seguir. Nunca deja el sitio a medias.
Qué etiqueta elegir
- Si tienes 4.5.x
oksigenia/moodle:4.5El paso más seguro: misma rama. - Si tienes 5.0.x
oksigenia/moodle:5.3O:5.2. - Si tienes 4.4 o anterior
oksigenia/moodle:4.5Primero la 4.5 y después la 5.x.
La 5.3 es la nueva versión LTS de Moodle, la de soporte largo. La 4.5, la LTS anterior, sigue publicada mientras Moodle la mantenga.
Antes de cambiar, cinco comprobaciones
Hemos migrado campus reales con esta imagen, y estos son los puntos que conviene mirar antes:
- La base de datos. Moodle 5.3 pide MariaDB 11.4 o posterior, MySQL 8.4 o PostgreSQL 17. La imagen de MariaDB de Bitnami también está congelada, pero puedes cambiarla después, como un paso aparte.
- Los plugins. Comprueba en moodle.org/plugins que cada uno tiene versión para el Moodle al que vas. Algunos fallan sin que el servidor diga nada: Moodle 5.2 retiró el módulo de JavaScript
core/modal_factory, y los plugins que aún lo usan pierden sus ventanas emergentes en silencio. - El tema Classic. Moodle 5.3 lo retira del núcleo. Si tu sitio lo usa, la imagen se para antes de actualizar para que decidas; con
MOODLE_ALLOW_REMOVED_PLUGINS=yessigue adelante. - Chat y Encuesta. Moodle 5.0 los sacó del núcleo y su actualización borra esas actividades. Si las tienes, la imagen se para y te indica cómo conservarlas con la versión que Moodle HQ publica aparte.
- El sitio cerrado. Ponlo en mantenimiento antes del cambio:
docker compose exec -u daemon moodle php /opt/bitnami/moodle/admin/cli/maintenance.php --enable
La imagen lo mantiene cerrado después de actualizar, para que lo revises antes de que vuelva a entrar nadie.
Si vienes de la 4.5, las primeras ejecuciones del cron tardan: Moodle 5 convierte cada banco de preguntas en una actividad propia y crea cursos para guardar los compartidos. Es normal y termina solo.
¿Muchos plugins, un tema a medida o una base de datos antigua? Lo revisamos antes y lo migramos contigo.
HablemosQué lleva la imagen
- Las ramas con soporte: 5.3, 5.2 y 4.5, reconstruidas cada semana para recoger los parches de Debian y de PHP.
- Seguridad comprobable: cada imagen se analiza con Trivy antes de publicarse, se firma con cosign y lleva su SBOM, la lista de todo lo que contiene.
- amd64 y arm64, para servidores x86 y ARM.
- Oksigenia Access, nuestro panel de accesibilidad, incluido y desactivado. Se enciende con
OKSIGENIA_ACCESS=on.
«Comprobable» quiere decir que no tienes que fiarte de nosotros. Con cosign, verificas que la imagen que te bajas es la que publicó nuestro repositorio:
cosign verify oksigenia/moodle:5.3 \
--certificate-identity-regexp '^https://github.com/OksigeniaSL/docker-moodle/\.github/workflows/release\.yml@' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
El código y la guía completa de migración están en GitHub.
Si prefieres que lo hagamos nosotros
La imagen es libre y la guía está escrita para que cualquiera pueda seguirla. Si prefieres no ocuparte, migramos, alojamos y mantenemos campus Moodle: actualizaciones, copias que se restauran de prueba y formación para tu equipo.
The word Moodle and associated Moodle logos are trademarks or registered trademarks of Moodle Pty Ltd or its related affiliates. Oksigenia no está afiliada a Moodle HQ ni es Moodle Certified Partner.

