readystack/moodle:v5.3.0-CE-ubuntu24.04-r4
A 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.
Signature, user and attestations below were measured on the published digest sha256:cb093ab45f33c0de59bd081e3129503ed71d5b24a4f6adf778947025293bf96d on 2026-10-27.
04daa92344a52dbc) on this release's index digest sha256:cb093ab45f33c0de59bd081e3129503ed71d5b24a4f6adf778947025293bf96d; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/moodle:v5.3.0-CE-ubuntu24.04-r4.www-data).This image follows the ReadyStack release-tag convention:
The current release is v5.3.0-CE-ubuntu24.04-r4 — the release on sale 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.
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-r4
# ✗ 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-r4 (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-r4
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 at readystack.dev/buy.html. A clean-room rebuild from this release's archive on an egress-blocked host reproduced its linux/amd64 digest sha256:7db55b5d94598d01488b16d7a5065e7ded89f7a2b534235f4e367b0c28d67a5c on 2026-10-27.
— ReadyStack · readystack.dev
Content type
Image
Digest
sha256:cb093ab45…
Size
169.1 MB
Last updated
about 4 hours ago
docker pull readystack/moodle:v5.3.0-CE-ubuntu24.04-r4