Skip to content

Build bootnode and keygen images natively per platform - #223

Merged
define-null merged 1 commit into
mainfrom
defnull/native-arm64-images
Aug 27, 2026
Merged

define-null merged 1 commit into
mainfrom
defnull/native-arm64-images

Conversation

@define-null

Copy link
Copy Markdown
Contributor

The single ubuntu-latest job built linux/amd64, arm/v7, arm64/v8 and 386 itself, with no QEMU, and the Dockerfile pins every stage to --platform=$BUILDPLATFORM; every published variant therefore contained the same amd64 binary. subsquid/bootnode:latest (1.0.5) has an x86-64 ELF under its linux/arm64 entry, which Docker on Apple Silicon then runs under Rosetta, where libp2p's QUIC handshake breaks.

Build bootnode and keygen on ubuntu-latest and ubuntu-24.04-arm in parallel, push each platform image untagged by digest, and combine the digests into the usual : and :latest tags with docker buildx imagetools create. The observer stays amd64-only, as before. The 32-bit variants are dropped: nothing could ever run them.

The single ubuntu-latest job built linux/amd64, arm/v7, arm64/v8 and
386 itself, with no QEMU, and the Dockerfile pins every stage to
--platform=$BUILDPLATFORM; every published variant therefore contained
the same amd64 binary. subsquid/bootnode:latest (1.0.5) has an x86-64
ELF under its linux/arm64 entry, which Docker on Apple Silicon then runs
under Rosetta, where libp2p's QUIC handshake breaks.

Build bootnode and keygen on ubuntu-latest and ubuntu-24.04-arm in
parallel, push each platform image untagged by digest, and combine the
digests into the usual <image>:<version> and <image>:latest tags with
`docker buildx imagetools create`. The observer stays amd64-only, as
before. The 32-bit variants are dropped: nothing could ever run them.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@define-null
define-null merged commit 6f89bb4 into main Aug 27, 2026
3 checks passed
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.

1 participant