MemoryFlow's container is a reproducible review surface for the analytical model. It is not a claim that the simulator is a production service or that its synthetic hardware profile represents a vendor product.
- The Python 3.11 Alpine base is pinned by multi-platform digest.
- The builder stage creates a Python wheel from the checked-in package.
- The runtime stage contains only the installed wheel, runtime dependencies, and generated static dashboard.
- Package installers and build tooling are removed from the runtime image after installation.
- Tests, scenarios, evidence sources, repository history, and local virtual environments are excluded from the image context.
- OCI labels identify the source repository and MIT license.
- Runs as unprivileged UID/GID
10001. - Supports a read-only root filesystem with a small temporary
/tmpmount. - Requires no Linux capabilities and sets
no-new-privileges. - Listens on container port
8000; Compose binds it to loopback only. - Uses
/healthfor an application-level Docker health check. - Persists no user or simulation payloads.
make docker-verify proves more than image construction:
- Build the multi-stage image.
- Start it with the hardened runtime flags.
- Wait for the live health endpoint.
- Confirm the process UID is
10001. - Confirm the dashboard is served.
- Submit the checked-in 7B tiered-memory scenario.
- Require result schema
2.0, feasibility, 64 decode steps, nonzero remote-media/link traffic, and the expectedremote_linkbottleneck. - Require Docker's image health status to become
healthy.
The local Apple Silicon run validates linux/arm64. GitHub Actions repeats the same contract on an amd64 Linux runner.
Vulnerability findings are time-dependent and are not stored as a permanent repository claim. Re-scan the built image when making a release decision.