diff --git a/Dockerfile b/Dockerfile index 72c8f676..038f7119 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,32 @@ -# syntax=docker.io/docker/dockerfile:1@sha256:42399d4635eddd7a9b8a24be879d2f9a930d0ed040a61324cfdf59ef1357b3b2 +# syntax=docker.io/docker/dockerfile:1.3-labs@sha256:250ce669e1aeeb5ffb892b18039c3f0801466536cb4210c8eb2638e628859bfd + +FROM --platform=$BUILDPLATFORM docker.io/library/alpine:3.17 AS alpine +FROM --platform=$BUILDPLATFORM docker.io/library/golang@sha256:403f48633fb5ebd49f9a2b6ad6719f912df23dae44974a0c9445be331e72ff5e AS golang +FROM --platform=$BUILDPLATFORM gcr.io/distroless/base:nonroot@sha256:e406b1da09bc455495417a809efe48a03c48011a89f6eb57b0ab882508021c0d AS distroless + + +FROM golang AS builder +WORKDIR /app +ARG TARGETOS TARGETARCH +ENV CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH +COPY go.??? . +RUN \ + --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build </os @@ -13,18 +38,22 @@ FROM osmap-$TARGETOS AS osmap FROM alpine AS fetcher WORKDIR /app +ARG VERSION RUN \ - --mount=from=osmap,source=/os,target=/os \ - set -ux \ - && apk add --no-cache curl \ - && export url=https://github.com/bojand/ghz/releases \ - && export arch=x86_64 \ - && export VERSION=$( ( curl -#fSLo /dev/null -w '%{url_effective}' $url/latest && echo ) | while read -r x; do basename $x; done) \ - && curl -#fSLo exe.tar.gz $url/download/$VERSION/ghz-$(cat /os)-$arch.tar.gz \ - && curl -#fSLo sha2 $url/download/$VERSION/ghz-$(cat /os)-$arch.tar.gz.sha256 \ - && sha256sum exe.tar.gz | grep -F $(cat sha2) \ - && tar xvf exe.tar.gz \ - && rm ghz-web* && mkdir exe && mv ghz* exe/ + --mount=from=osmap,source=/os,target=/os <