Having issues with multi-architecture docker-building from our gitlab runners.
Runners are amd64. We've tried both arm64 and amd64 Dagger engines, both result in common arch errors whilst building arm64/amd64 images.
Examples:
-
Amd64 runner, amd64 engine, building aarch64 image:
Error while loading /usr/local/bin/yq: Exec format error -
Amd64 runner, arm64 engine, building amd64 image:
internal/goos: /usr/local/go/pkg/tool/linux_amd64/compile: signal: segmentation fault (core dumped)
In both cases, both arm64 and amd64 build fine locally on arm64 macos.
What is best practice here? Why do they build locally but not remote?
One possible (but uninvestigated) cause is something to do with Golang. Yq is written in Go, the second image is a Golang image which errored on installing gotestsum