Jade and Claude
d1bf4ca042
fix(docker): build natively on arm64 hosts ( #2359 )
...
Building the image natively on an arm64 machine (a Raspberry Pi 4 or 5
on 64-bit OS, Apple silicon) fails at the first `RUN` of the build
stage:
```
=> ERROR [builder 2/40] RUN apk add --no-cache curl xz && ...
0.841 exec /bin/sh: exec format error
```
**Cause:** the Dockerfile declares `ARG BUILDPLATFORM=linux/amd64`. A
default on that ARG overrides the value BuildKit sets for the machine
doing the build, so an arm64 host pulls the amd64 `golang` image and
can't run it. CI didn't catch it because its arm64 image is cross-built
on an amd64 runner, where `linux/amd64` was correct anyway.
**Fix:** declare `ARG BUILDPLATFORM` without a default. BuildKit, the
default builder since Docker 23 and what buildx uses, fills it in on
every host. amd64 builds and the CI cross-build are unchanged.
**Workaround on current master:** `docker build --build-arg
BUILDPLATFORM=linux/arm64 .`
**Test:** `tests/unit/test-dockerfile-buildplatform.js` fails on the old
Dockerfile and passes on this one. It checks three things:
- `BUILDPLATFORM` has no default.
- The Go builder stays pinned to `$BUILDPLATFORM`.
- No stage hard-codes a platform.
It's wired into `test-all.sh`.
Found while building the image on a Raspberry Pi running Raspberry Pi OS
Trixie (arm64) with Docker 29.
---
Co-authored-by: Claude <noreply@anthropic.com >
2026-10-31 12:13:29 +01:00
..
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-25 00:07:57 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-28 19:10:41 +01:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-20 10:39:15 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-05 20:32:40 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-08 21:51:42 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-30 11:40:22 +02:00
2026-09-17 19:06:07 +02:00
2026-10-08 21:51:42 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-29 18:34:06 +01:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-08 21:38:30 +02:00
2026-09-30 11:39:51 +02:00
2026-10-31 12:13:29 +01:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-13 22:04:03 +02:00
2026-09-17 19:06:07 +02:00
2026-09-23 09:45:18 +02:00
2026-09-17 19:06:07 +02:00
2026-10-29 18:33:59 +01:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-29 06:42:51 +01:00
2026-10-17 09:38:11 +02:00
2026-10-19 20:00:07 +02:00
2026-10-19 20:00:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-14 21:07:20 +02:00
2026-10-16 09:27:21 +02:00
2026-09-17 19:06:07 +02:00
2026-09-20 14:00:45 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-03 12:15:52 +02:00
2026-09-17 19:06:07 +02:00
2026-10-21 15:18:14 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-19 20:00:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-25 00:07:57 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-08 21:38:30 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-20 14:00:45 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-05 20:32:40 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-10 21:20:40 +02:00
2026-09-17 19:06:07 +02:00
2026-09-20 17:04:37 +02:00
2026-09-17 19:06:07 +02:00
2026-10-28 21:55:40 +01:00
2026-09-25 00:08:28 +02:00
2026-10-03 12:55:39 +02:00
2026-10-19 20:00:07 +02:00
2026-10-19 20:00:07 +02:00
2026-10-17 11:46:28 +02:00
2026-10-20 10:39:15 +02:00
2026-10-17 10:39:08 +02:00
2026-10-16 10:54:36 +02:00
2026-10-26 15:44:23 +01:00
2026-10-20 10:39:15 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-26 15:50:36 +01:00
2026-09-17 19:06:07 +02:00
2026-10-21 15:17:58 +02:00
2026-09-17 19:06:07 +02:00
2026-10-17 09:38:11 +02:00
2026-09-17 19:06:07 +02:00
2026-09-23 10:58:36 +02:00
2026-10-10 21:21:30 +02:00
2026-10-22 21:20:42 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-10 20:54:35 +02:00
2026-10-31 12:00:06 +01:00
2026-09-17 19:06:07 +02:00
2026-10-17 21:07:27 +02:00
2026-09-17 19:06:07 +02:00
2026-10-29 22:36:53 +01:00
2026-09-17 19:06:07 +02:00
2026-10-29 22:36:53 +01:00
2026-10-08 21:51:42 +02:00
2026-10-05 20:32:40 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-26 21:08:40 +01:00
2026-10-12 15:25:59 +02:00
2026-09-17 19:06:07 +02:00
2026-10-05 20:32:40 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-10 21:22:54 +02:00
2026-10-22 19:11:16 +02:00
2026-09-17 19:06:07 +02:00
2026-10-21 15:17:58 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-29 22:39:02 +01:00
2026-10-04 22:11:34 +02:00
2026-09-17 22:02:36 +02:00
2026-09-17 19:06:07 +02:00
2026-10-07 11:20:44 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-20 11:40:25 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-26 15:43:43 +01:00
2026-10-26 15:43:16 +01:00
2026-09-17 19:06:07 +02:00
2026-09-17 19:06:07 +02:00
2026-10-29 22:36:53 +01:00