docs: provide reproducible multi-platform publisher
This commit is contained in:
@@ -263,24 +263,24 @@ control consumer, client consumer, E2E, then image publication.
|
||||
### Reproducible multi-platform Buildx lifecycle
|
||||
|
||||
The named Buildx builders are local acceleration/cache only; they are not a
|
||||
deployment dependency and can be removed after publication. To create a fresh
|
||||
builder, verify its platforms, publish a release, and remove it afterwards:
|
||||
deployment dependency and can be removed after publication. Use the checked-in
|
||||
publisher: it installs only the non-native binfmt handler, creates a temporary
|
||||
rootless BuildKit builder, verifies both platforms, publishes the index,
|
||||
displays its digest, then removes both temporary resources.
|
||||
|
||||
```bash
|
||||
docker buildx create --name archive-control-release --driver docker-container --use
|
||||
docker buildx inspect --bootstrap
|
||||
docker buildx build --platform linux/amd64,linux/arm64 \
|
||||
--tag sodium/archive-clients:vX.Y.Z --push .
|
||||
docker buildx rm archive-control-release
|
||||
scripts/publish-image.sh vX.Y.Z
|
||||
scripts/publish-image.sh vX.Y.Z --also-latest
|
||||
```
|
||||
|
||||
`docker buildx inspect` must list both `linux/amd64` and `linux/arm64` before
|
||||
publishing. If the host has no arm64 emulation, install/configure it according
|
||||
to the host Docker distribution before the build; do not publish a partial
|
||||
single-platform tag. Retain the pushed manifest digest in the release notes
|
||||
and deploy the immutable tag or digest. The optional `archive-control-qemu`
|
||||
builder follows the same lifecycle when it is used for an emulation smoke
|
||||
build.
|
||||
The publisher deliberately uses `moby/buildkit:rootless` with
|
||||
`--oci-worker-no-process-sandbox`. On nested Docker hosts, the default OCI
|
||||
sandbox can fail while masking `/proc/acpi` for an emulated build; rootless
|
||||
BuildKit confines that compatibility setting to the disposable builder. It
|
||||
refuses to publish unless `docker buildx inspect` reports both `linux/amd64`
|
||||
and `linux/arm64`, and removes the builder and binfmt handler on success,
|
||||
failure, or interruption. Retain the displayed manifest digest in release
|
||||
notes and deploy the immutable tag or digest.
|
||||
|
||||
## Operator usage
|
||||
|
||||
|
||||
Reference in New Issue
Block a user