From d4441cda6777586f79819a3ba4f509e0df29d305 Mon Sep 17 00:00:00 2001 From: V Date: Sat, 16 May 2026 22:37:08 +0100 Subject: [PATCH] Cross compile Docker image targets --- Dockerfile | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0cbba49..04c26e1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,28 @@ # syntax=docker/dockerfile:1 -FROM golang:1.24-bookworm AS build +ARG BUILDPLATFORM +FROM --platform=$BUILDPLATFORM golang:1.24-bookworm AS build WORKDIR /src +ARG TARGETARCH + +RUN apt-get update \ + && apt-get install -y --no-install-recommends gcc-aarch64-linux-gnu libc6-dev-arm64-cross \ + && rm -rf /var/lib/apt/lists/* + COPY go.mod go.sum ./ RUN go mod download COPY . . -RUN CGO_ENABLED=1 GOOS=linux go build -o /out/archi-folio ./cmd/server +RUN targetarch="${TARGETARCH:-amd64}" \ + && echo "building for TARGETARCH=${targetarch}" \ + && case "$targetarch" in \ + amd64) export CC=gcc ;; \ + arm64) export CC=aarch64-linux-gnu-gcc ;; \ + *) echo "unsupported TARGETARCH=${targetarch}" >&2; exit 1 ;; \ + esac \ + && CGO_ENABLED=1 GOOS=linux GOARCH="$targetarch" go build -o /out/archi-folio ./cmd/server FROM gcr.io/distroless/cc-debian12:nonroot