fix: compose the manifest with imagetools, not docker manifest
A per-arch push came back as "is a manifest list". Since Buildx 0.10,
provenance and SBOM attestations are ON by default, so even a SINGLE-platform
build publishes an OCI index (image + attestation) rather than a plain
manifest — and `docker manifest create` refuses to nest an index inside an
index.
Two changes, either of which alone would fix it, kept together because they
fail in different directions:
--provenance=false --sbom=false keeps each per-arch push a plain manifest.
Probed for support first, so an older
docker that lacks the flags still works.
imagetools create composes correctly whether the sources are
plain manifests OR indexes, so attestations
reappearing later cannot break it again.
Falls back to docker manifest when buildx
is unavailable, with the actionable hint in
the failure message.
Verification now accepts either inspector's output and asserts both platforms
are present by name.
This commit is contained in:
1 parent
b2d4e02c6f
commit
71ba76943a
2 files changed
+38
-8
No files matched your search
@@ -61,6 +61,13 @@ can clear it directly:
|
||||
A pin you added yourself (no marker) is never touched, and the script refuses to
|
||||
run if an unmarked pin points somewhere other than the gateway.
|
||||
|
||||
If a per-arch push reports *"is a manifest list"*, that is BuildKit's provenance
|
||||
attestation: since Buildx 0.10 it is on by default, so even a single-platform
|
||||
build publishes an OCI **index** rather than a plain manifest, and
|
||||
`docker manifest create` refuses to nest one. The script builds with
|
||||
`--provenance=false --sbom=false` and composes with `docker buildx imagetools
|
||||
create`, which handles either shape.
|
||||
|
||||
Requirements: a Gitea PAT with **`write:package`** (`read:package` is pull-only),
|
||||
LAN reachability of the gateway, and qemu/binfmt registered for the arm64 build.
|
||||
|
||||
|
||||
Reference in new issue
Block a user