Skip to content

[ANCHOR-1190] Fix multi-arch image build#1923

Merged
JiahuiWho merged 1 commit intodevelopfrom
fix-multi-arch-docker-build
Apr 10, 2026
Merged

[ANCHOR-1190] Fix multi-arch image build#1923
JiahuiWho merged 1 commit intodevelopfrom
fix-multi-arch-docker-build

Conversation

@JiahuiWho
Copy link
Copy Markdown
Contributor

@JiahuiWho JiahuiWho commented Apr 10, 2026

Description

  • Switch to Docker's recommended pattern:
    • Build jobs push by digest only (no intermediate -amd64 -arm64 tags)
    • Then a create_multi_arch_manifest job uses docker buildx imagetools create to merge both digests into a single multi-arch manifest.
  • Apply the same fix to on_push_to_develop

Context

#1922 failed because docker manifest create (used to merge the amd64 and arm64 builds) expects each source image to be a plain image manifest. However, build-push-action v6 with buildx wraps each single-platform image into a manifest list (containing the image + provenance attestation), so the command rejects them with the error "is a manifest list"

Testing

  • ./gradlew test

Documentation

N/A

Known limitations

N/A

@JiahuiWho JiahuiWho marked this pull request as ready for review April 10, 2026 14:49
Copilot AI review requested due to automatic review settings April 10, 2026 14:49
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Docker publishing workflows to follow Docker’s recommended multi-arch pattern: push per-arch images by digest, then merge those digests into a single multi-arch manifest using docker buildx imagetools create. This addresses failures caused by trying to merge per-platform manifest lists with docker manifest create.

Changes:

  • Build amd64/arm64 images and push them by digest (no intermediate arch tags).
  • Create and push multi-arch manifests (release version/latest; develop edge/dated) via docker buildx imagetools create using the per-job digests.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/on_release_created_or_updated.yml Push per-arch images by digest and create release multi-arch manifests from digests.
.github/workflows/on_push_to_develop.yml Apply the same digest + imagetools create pattern for edge and dated edge-* tags.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JiahuiWho JiahuiWho merged commit 3cefeb3 into develop Apr 10, 2026
21 of 25 checks passed
@JiahuiWho JiahuiWho deleted the fix-multi-arch-docker-build branch April 10, 2026 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants