Pin the example modules to images that exist
novox/hq 04-ISSUES/025. Every image reference in every example module was sixty-four zeros — eighteen of them across five modules. Each parsed, resolved, and composed into a declaration a host accepts, and none could ever have started: the machine reaches `docker pull` and stops. That is why those modules were written and not running, and no check saw it because every check passed. The host validates the shape of a reference and nothing more, which is correct: verifying a digest exists means reaching a registry, and that is the one thing a host must never have to do. So the last place that could catch this is the wrong place to try. The guard therefore sits where a declaration is composed, not where a manifest is parsed. A file in a repository is allowed to await a pin — the design already says the manifest in a repository names artifacts while the manifest the mesh holds names digests, and the bundle works exactly that way. What must never happen is a placeholder reaching a machine, and composing is the last moment before one does. Twelve third-party images resolved to real digests without pulling anything, which is also the mechanism the open issue needs. Two discoveries came free: mailu publishes to ghcr rather than Docker Hub, so seven references named repositories that do not exist at all; and it renamed roundcube to webmail, so that one would have failed even with the right registry. What stays a placeholder is the mesh's own provisioner images, which genuinely have no digest until built and pushed — the bundle's problem, legitimately unresolved here. The stand-in consumer now stands in with a real image rather than an invented one.
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
{"id": "config", "type": "directory", "path": "/etc/photos", "mode": "0750"},
|
||||
|
||||
{"id": "app", "type": "container", "name": "photos",
|
||||
"image": "photos@sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"image": "alpine@sha256:c64c687cbea9300178b30c95835354e34c4e4febc4badfe27102879de0483b5e",
|
||||
"env": {
|
||||
"PHOTOS_STORE": "/etc/photos/store.json",
|
||||
"PHOTOS_STORE_SECRET_FILE": "/etc/photos/store.secret"
|
||||
|
||||
Reference in New Issue
Block a user