Skip to content

Add -demo variants of the Plone 4.3 - 5.2 images - #214

Merged
ericof merged 1 commit into
mainfrom
issue-211
Oct 9, 2026
Merged

ericof merged 1 commit into
mainfrom
issue-211

Conversation

@ericof

@ericof ericof commented Oct 8, 2026

Copy link
Copy Markdown
Member

This adds -demo variants for the 4.3, 5.0, 5.1 and 5.2 series. Each one is the official plone image for its series (4.3.19, 5.0.8, 5.1.6, 5.2.14), pinned by digest, plus a database with a Plone site already created at /Plone. The base images are not rebuilt (see #213).

How it works (demo/):

  • The official images ship no curl, and nothing can be installed into them, so seed.sh creates the site from the host. It starts the official image, runs legacy/shared/create-plone-site.sh, stops Zope, checks that the storage was closed cleanly, and copies Data.fs and the blobs out with docker cp.
  • Dockerfile adds that seed at /app/seed, plus a wrapper entrypoint. On first start the wrapper copies the seed into /data, then runs the base image's own entrypoint. When /data already holds a database, nothing is copied.
  • The demo build workflow seeds, builds and smoke-tests all four series. On main it pushes <series>-demo and <full>-demo to plone/plone and GHCR, like the legacy workflow.

What differs between the base images: 5.2 only stops cleanly on SIGINT. With SIGTERM, docker stop ran into its 120s timeout and killed Zope. 5.2 also logs to stdout/stderr instead of /data/log/.

Changes to the shared legacy scripts. These make the legacy CI rebuild all 11 series on this PR:

  • create-plone-site.sh: on Plone 5, the theme check now looks for ++theme++barceloneta in the rendered page. The skin check used for Plone 4 found nothing on Plone 5.
  • smoke-test.sh: new SMOKE_LOG_SOURCE=docker option, which reads product-load errors from docker logs.
  • A gate bug: the JSON check passed on 5.2 even though the probe never ran. The probe was Python 2 only and failed to compile, and the check matched the marker inside the traceback that quoted the probe's source. The probe now runs on Python 2.3 – 3.8, and the check only accepts the marker at the start of a line.

Tested locally:

  • All four -demo images pass the smoke test: the site is already there on first start, admin:admin authenticates, and the product-load and JSON checks pass.
  • The old probe now fails the fixed check.
  • The new probe passes on 9 images, from legacy 1.0 (Python 2.3) to 5.2 (Python 3.8).

After merge: add the demo subsections for 4.3, 5.0, 5.1 and 5.2 to plone/documentation's docs/install/containers/images/historical.md (plone/documentation#2103).

Refs #211

Each -demo image is the official plone image for the series (4.3.19,
5.0.8, 5.1.6, 5.2.14), pinned by digest, plus a database with a Plone
site already created at /Plone. The bases are not rebuilt: their Debian
releases have left deb.debian.org.

demo/seed.sh starts the official image on the host, creates the site
through legacy/shared/create-plone-site.sh, stops Zope with the signal
that closes the storage cleanly (INT for 5.2, TERM for the others) and
copies the database out. demo/Dockerfile bakes it at /app/seed, and a
wrapper entrypoint copies it into /data on first start before handing
over to the base image's entrypoint. The demo build workflow tests
every series and publishes <series>-demo and <full>-demo to plone/plone
and GHCR from main.

Shared legacy scripts:

- create-plone-site.sh checks the Barceloneta theme on Plone 5, where
  the Plone 4 skin check reads nothing.
- smoke-test.sh can read product-load errors from docker logs, for 5.2,
  which writes no log file.
- The JSON gate passed on 5.2 without the probe running: the probe was
  Python 2 only, and the gate matched the marker inside the traceback
  that quoted the probe's source. The probe now runs on Python 2.3 - 3.8,
  and the gate only accepts the marker at the start of a line.

Refs #211
@ericof
ericof requested a review from a team as a code owner October 8, 2026 23:56
@ericof
ericof merged commit 191a17c into main Oct 9, 2026
21 checks passed
@ericof
ericof deleted the issue-211 branch October 9, 2026 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant