Sign inSign up

readystack/drupal

By readystack

•Updated 1 day ago

Image
0

1.0K

readystack/drupal repository overview

⁠Drupal

Signed: cosign SBOM: SPDX attached Provenance: SLSA v1

readystack/drupal:11.4.11-CE-ubuntu24.04-r2

A cosign-signed build of Drupal 11.4.11 (GPL-2.0-or-later), built with composer from drupal/recommended-project 11.4.11, built clean-room from official upstream source by ReadyStack⁠.

⁠What you get

Signature, user and attestations below were measured on the published digest sha256:0f7cf57f480910380fad92b40240201240d92fef3cbb7b14635a7ef330c68348 on 2026-10-27.

  • Scan scores — we scan every image we publish every day (an SBOM made with syft, vulnerabilities matched with grype, scored with ce.rodeo's published rubric) and record each scan with how its score was derived. This release's first and latest scan: https://readystack.dev/products.html#drupal⁠
  • ReadyStack release check — passed at release on 2026-10-27: no fixable critical or high vulnerability (Docker Scout and OSV), a non-root user, SBOM and provenance attached. This is ReadyStack's own test, not a Docker grade; vulnerabilities published since then are in today's result at https://readystack.dev/queue⁠.
  • Signed — cosign signature by the ReadyStack release key (fingerprint 04daa92344a52dbc) on this release's index digest sha256:0f7cf57f480910380fad92b40240201240d92fef3cbb7b14635a7ef330c68348; verify with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/drupal:11.4.11-CE-ubuntu24.04-r2.
  • Attestations — An SPDX SBOM and SLSA v1 build provenance are attached to this digest.
  • Runs as a non-root user (www-data).
  • Built from source by ReadyStack.

⁠Which tag should I pull?

This image follows the ReadyStack release-tag convention:

  • The current release is 11.4.11-CE-ubuntu24.04-r2 — 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/drupal:11.4.11-CE-ubuntu24.04-r2

# ✗ unsupported (do not pull)
docker pull readystack/drupal:internal-...

This release is signed; verify it with cosign verify --key https://readystack.dev/keys/cosign.pub readystack/drupal:11.4.11-CE-ubuntu24.04-r2 (the signature is recorded in the public Sigstore transparency log). Support: [email protected]⁠, as set out in the ReadyStack Agreement⁠.

⁠Deployment

A single container: Apache 2.4 with mod_php (Ubuntu 24.04's PHP 8.3) serving Drupal from /opt/drupal/web on port 8080, as the non-root www-data user. The default database is an embedded SQLite file, /var/lib/drupal/drupal.sqlite, so one container is the whole site; MySQL/MariaDB or PostgreSQL are supported through DRUPAL_DB_* variables. The site is installed at the first start (standard profile), before Apache starts, so the web installer is never served.

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 drupal.env with install -m 600 /dev/null drupal.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 first start installs Drupal and creates the administrator (DRUPAL_ADMIN_USER, default admin) with DRUPAL_ADMIN_PASSWORD. Remove this line after setup and recreate the container; the administrator keeps the password.
DRUPAL_ADMIN_PASSWORD=YOUR_STRONG_PASSWORD
docker run -d --name drupal -p 8080:8080 --env-file ./drupal.env -e DRUPAL_TRUSTED_HOSTS=localhost -v drupal-data:/var/lib/drupal -v drupal-files:/opt/drupal/web/sites/default/files readystack/drupal:11.4.11-CE-ubuntu24.04-r2

Open http://localhost:8080/user/login⁠ and sign in as admin with the password from drupal.env. Once the first start has installed the site, remove the DRUPAL_ADMIN_PASSWORD line from drupal.env and recreate the container on the same volumes (docker rm -f drupal, then the docker run command again): the installer runs only while the database holds no Drupal, so the administrator keeps the password, and the password is no longer in the container's environment (tested). Leave the line out from the start and the first start generates a password into /var/lib/drupal/initial_admin_password instead: docker exec drupal cat /var/lib/drupal/initial_admin_password. Set DRUPAL_TRUSTED_HOSTS to the host names people use (comma-separated, e.g. www.example.com⁠).

⁠The full ReadyStack Hermetic Build Kit

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:750301160d1fd55bdaacc55dd64a4b1efa06b4dba7dbabf03d02de3b2d3e1ed3 on 2026-10-27.

— ReadyStack · readystack.dev

Tag summary

Content type

Image

Digest

sha256:0f7cf57f4…

Size

93.1 MB

Last updated

1 day ago

docker pull readystack/drupal:11.4.11-CE-ubuntu24.04-r2