Skip to content

fix: cross-compile binaries for the requested target platform#22

Merged
glours merged 1 commit into
docker:mainfrom
glours:fix/multiarch-cross-compile
Jul 7, 2026
Merged

fix: cross-compile binaries for the requested target platform#22
glours merged 1 commit into
docker:mainfrom
glours:fix/multiarch-cross-compile

Conversation

@glours

@glours glours commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

All published platform variants (386, arm/v6, arm/v7, arm64, ppc64le) contained the same amd64 binary: the builder stage runs on BUILDPLATFORM but go build never set GOOS/GOARCH, so images only worked where emulation (e.g. Rosetta) was available.

Build with explicit GOOS/GOARCH/GOARM from BuildKit platform args and add an xx-verify --static guard so any future cross-compile regression fails the build instead of publishing wrong-arch images. Also split go.mod/go.sum into their own layer for module cache reuse and add a .dockerignore to keep the build context minimal.

All published platform variants (386, arm/v6, arm/v7, arm64, ppc64le)
contained the same amd64 binary: the builder stage runs on
BUILDPLATFORM but go build never set GOOS/GOARCH, so images only
worked where emulation (e.g. Rosetta) was available.

Build with explicit GOOS/GOARCH/GOARM from BuildKit platform args and
add an xx-verify --static guard so any future cross-compile regression
fails the build instead of publishing wrong-arch images. Also split
go.mod/go.sum into their own layer for module cache reuse and add a
.dockerignore to keep the build context minimal.

Signed-off-by: Guillaume Lours <glours@users.noreply.github.com>
@glours glours self-assigned this Jul 7, 2026
@glours glours merged commit b192fa4 into docker:main Jul 7, 2026
4 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