From 9a213752eff12561ef609f4081f6e5aba9640d34 Mon Sep 17 00:00:00 2001 From: Tarak Ben Youssef Date: Wed, 10 Jan 2024 23:59:37 +0100 Subject: [PATCH] multistage build --- cmd/emulator/Dockerfile | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/cmd/emulator/Dockerfile b/cmd/emulator/Dockerfile index f9899a00..6fee914e 100644 --- a/cmd/emulator/Dockerfile +++ b/cmd/emulator/Dockerfile @@ -19,21 +19,24 @@ COPY . . ARG TARGETOS ARG TARGETARCH -RUN if [ "$TARGETARCH" = "arm64" ] ; then \ - --mount=type=ssh \ + +FROM base AS build-amd64-target +RUN --mount=type=ssh \ --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ GO111MODULE=on CGO_ENABLED=1 GOOS=$TARGETOS \ - GOARCH=$TARGETARCH CC=arm-linux-gnueabi-gcc \ - go build -ldflags "-extldflags -static" -o ./app ./cmd/emulator ; \ - elif [ "$TARGETARCH" = "amd64" ] ; then \ - --mount=type=ssh \ + GOARCH=$TARGETARCH CC=arm-gcc \ + go build -ldflags "-extldflags -static" -o ./app ./cmd/emulator + +FROM base AS build-arm64-target +RUN --mount=type=ssh \ --mount=type=cache,target=/go/pkg/mod \ --mount=type=cache,target=/root/.cache/go-build \ GO111MODULE=on CGO_ENABLED=1 GOOS=$TARGETOS \ - GOARCH=$TARGETARCH CC=gcc \ - go build -ldflags "-extldflags -static" -o ./app ./cmd/emulator ; \ - fi + GOARCH=$TARGETARCH CC=arm-linux-gnueabi-gcc \ + go build -ldflags "-extldflags -static" -o ./app ./cmd/emulator + +FROM build-${TARGETARCH}-target AS final ## Add the binary to a fresh distroless image FROM gcr.io/distroless/static