Run Hugo natively in build stage to skip QEMU emulation
Build Hugo / build (push) Successful in 6m31s
Build Hugo / deploy (push) Failing after 24s

Pin the build stage to $BUILDPLATFORM so Hugo runs once on the native
arch instead of once per target arch under QEMU. Hugo output is static
HTML and identical across arches, so the emulated arm64 Hugo run (~59s
vs ~12s native) plus emulated base-image extraction were pure waste.
The runtime stage stays on TARGETPLATFORM, so multi-arch amd64+arm64
images are still produced.
This commit is contained in:
2026-08-03 15:40:22 +00:00
parent 319c8fa922
commit 3c5678f8a8
+6 -1
View File
@@ -1,4 +1,9 @@
FROM ghcr.io/hugomods/hugo:0.157.0 AS build
# syntax=docker/dockerfile:1
# Pin the build stage to the native build platform so Hugo runs once (never
# under QEMU emulation). Hugo output is static HTML — identical across arches —
# so there's no reason to run it per target arch. The runtime stage below stays
# on TARGETPLATFORM, so multi-arch (amd64 + arm64) runtime images are preserved.
FROM --platform=$BUILDPLATFORM ghcr.io/hugomods/hugo:0.157.0 AS build
WORKDIR /tmp/hugo
COPY . .
RUN hugo --gc --minify