Repository navigation
Conversation
…tate Add an isolated opt-in container regression and document core-only writable mounts. Preserve readonly and non-root restrictions; make no runtime change. Report shutdown exit status separately from startup and restart evidence.
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoTest read-only Docker startup and persistent migration state
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
1.
|
Related to #8084. This is regression coverage and deployment documentation, not
a claim that this PR fixes all read-only plugin deployments.
I reproduced the reported first-boot failure with the official 3.3.3 image:
pnpm 11.9.0's
ls --long --json --depth=0 --no-productionexits 1. A diagnosticpreload traced the failing SQLite open to:
/home/etherpad/.local/share/pnpm/store/v11/index.db
Direct invocation returns ERR_SQLITE_ERROR: unable to open database file.
This is the package-manager store, not the Etherpad SQLite database in var/.
The official 3.3.7 image (pnpm 12.8.1) already boots with the same read-only
core-only layout. No runtime code change is proposed. The repository-pinned
pnpm 12.4.2 native binary also lists the installed packages successfully in an
offline, read-only probe; this probe is not a full develop-image build.
Changes:
deployments; no blanket promise for third-party or migrated legacy plugins.
The test uses UID 5001, read-only root, dropped capabilities, no-new-privileges,
network=none, no published ports, and bounded resources. It verifies initial
HTTP health/home, migration-state creation, and restart using the same var volume
without another migration. Only its uniquely named test container and volume are
removed. It does not install dependencies or pull images.
Local validation, same final test source:
Image digests:
3.3.3 sha256:6020e7b57f4b17389ef000a5a2b04e6ab3ea6659c7c7ab83b81587010fa58be4
3.3.7 sha256:6f87beef31d91e4a44c7e3fe64043dd294f70443a80267a77267bdac704819a1
Separate limitation: 3.3.7's shutdown watchdog exits 1 after HTTP/database shutdown,
on BOTH writable and read-only roots in this environment. The test reports that
code, rejects OOM/forced-kill stops, and checks that restart succeeds; it does NOT
claim clean process shutdown. Original failed clean-shutdown check was retained
in the local evidence. No first-fixed-release bisection, full develop build,
collaborative editing test, plugin migration qualification, or full suite claimed.
AI-assisted contribution; assertions above refer to actual local container runs.