Moodle: learning management system for courses and grading. Signed; SBOM and SLSA v1 provenance.
10K+
readystack/moodle:v5.3.0-CE-ubuntu24.04-r7
Source, recipe and records
v5.3.0): https://github.com/moodle/moodle/tree/42622298fe06f9626d988d60b2bf589bd8f850e8A cosign-signed build of github.com/moodle/moodle v5.3.0 (GPL-3.0-or-later), built clean-room from official upstream source by ReadyStack.
Who: Schools, universities, companies and other organisations that run online learning and training.
Why: Moodle is an open-source learning management system that gives educators, administrators and learners one integrated system for courses, activities, assignments, grading and progress tracking.
Use case: A company trains staff in several offices. In Moodle the training team builds self-paced courses with forums and assignments, enrols each group of staff in the courses for their role, and tracks who has completed which course.
About the upstream project, written from its own description: https://github.com/moodle/moodle · https://docs.moodle.org/en/About_Moodle · https://docs.moodle.org/en/Features
Signature, user and attestations below were measured on the published digest sha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62 on 2026-11-12.
04daa92344a52dbc) on this release's index digest sha256:62e731fc1db2b9db2da5457ee370a38e3f5a48a023e6cbcbf20ab4bfdce91d62; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/moodle:v5.3.0-CE-ubuntu24.04-r7.www-data).This image follows the ReadyStack release-tag convention:
The current release is v5.3.0-CE-ubuntu24.04-r7 — the release listed at readystack.dev. Release tags use the pattern <upstream-version>-CE-<base-os>-r<N>; the current one is signed, attested (SBOM + provenance), and is provided under the ReadyStack Agreement.
Earlier release tags (an older version or revision in the same pattern) are superseded. They stay pullable so existing deployments can pin them, but they are no longer re-graded, and fixes appear only in newer releases: move to the current release. For a superseded release's build kit, ask support.
Release tags never move, so pulling the same tag again never changes the image. To be offered each new release automatically (a new revision r<N+1>, or a new upstream version), use the ReadyStack Renovate preset: https://readystack.dev/updates.html
Any tag beginning with internal- is an engineering-pipeline artifact published for build observability. It is unsupported, may change or disappear without notice, and must not be used in production.
# ✓ current release
docker pull readystack/moodle:v5.3.0-CE-ubuntu24.04-r7
# ✗ unsupported (do not pull)
docker pull readystack/moodle:internal-...
This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/moodle:v5.3.0-CE-ubuntu24.04-r7 (the signature is recorded in the public Sigstore transparency log). Support: [email protected], as set out in the ReadyStack Agreement.
Single container (Apache + mod_php, one foreground process) running the Moodle LMS. It REQUIRES an EXTERNAL MySQL 8.4+ / MariaDB 11.4+ database the operator provisions and points the container at via DB_HOST/DB_PORT/DB_NAME/DB_USER/DB_PASS — there is NO embedded/SQLite database. On first start Moodle runs php admin/cli/install.php to create config.php + all module schema (a multi-minute one-time install). NOT a multi-service cluster, but NOT self-contained: a MySQL/MariaDB server is a hard external dependency, and moodledata + the DB must persist.
Secrets go in an env file that only you can read, not on the command line, and passwords that only set up the first start come out of it after setup. Create moodle.env with install -m 600 /dev/null moodle.env, then write these lines into it with an editor, with your own values (a value typed into a shell stays in its history). Docker reads each line as written: no quotes around a value, no spaces around =.
# First start only: the installer writes the database password into config.php on the moodle-data volume. You can remove DB_PASS after setup and recreate the container.
DB_PASS=YOUR_DB_PW
# First start only: the installer creates the administrator (MOODLE_ADMIN, default admin) with MOODLE_ADMIN_PASS. Remove this line after setup and recreate the container; the administrator keeps the password.
MOODLE_ADMIN_PASS=YOUR_STRONG_PW
docker run -d --name moodle -p 8080:8080 -e MOODLE_WWWROOT=https://moodle.example.com -e DB_HOST=YOUR_DB_HOST -e DB_PORT=3306 -e DB_NAME=moodle -e DB_USER=moodle -e [email protected] --env-file ./moodle.env -v moodle-data:/var/www/moodledata readystack/moodle:v5.3.0-CE-ubuntu24.04-r7
The empty 'moodle' database must exist on your server first, created with CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; (on MariaDB 11.4 a database created without COLLATE gets utf8mb4_uca1400_ai_ci and the installer refuses it); first boot creates the schema, taking a few minutes. The installer reads DB_PASS and MOODLE_ADMIN_PASS from moodle.env on the first start only (config.php on the moodle-data volume keeps the database password): after that first start, remove both lines from moodle.env and recreate the container on the same volume (docker rm -f moodle, then the docker run command again); the site and the administrator keep their passwords, which are then no longer in the container's environment (tested).
The complete --network=none build kit for this image — plus admin/DB/API handbooks, the build's validation records, and its build provenance records — is a free download for any registered account at readystack.dev/products/moodle. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:d91cb50dcb781e2f82d25726d98bdddae58ca9faeeae67ac80bd3d08af56bbc3 on 2026-11-12.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:62e731fc1…
Size
171.4 MB
Last updated
36 minutes ago
docker pull readystack/moodle:v5.3.0-CE-ubuntu24.04-r7