mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-10-24 14:08:27 +02:00
The build stage ran on the target platform, so a multi-platform build ran the Go toolchain under qemu. On hosts with an older qemu-user (Ubuntu 22.04 ships 6.2) Go crashed building linux/arm/v7, and the image still built: scripts/build.sh did not fail on a build error, and the COPY of ctrld-linux-*-nocgo matched nothing, so the image shipped without ctrld. In both docker/Dockerfile and docker/Dockerfile.debug, run the build stage on BUILDPLATFORM and cross-compile for the target with scripts/build.sh linux/amd64, linux/arm64 or linux/armv7. Then move the binary built for that target, by its exact name, to a fixed path, and fail when it is missing. scripts/build.sh now exits non-zero when go generate or go build fails, and .dockerignore keeps ctrld-* files from the host out of the build context, so a leftover binary can never stand in for a failed build. Drop the outdated CTRLD_NO_QF variable.