# syntax=docker/dockerfile:1 FROM --platform=$BUILDPLATFORM node:22.14.0-alpine AS ui-builder RUN apk --no-cache add make WORKDIR /app COPY . . RUN make ui FROM --platform=$BUILDPLATFORM golang:1.27.1-alpine AS app-builder RUN apk --no-cache add ca-certificates git WORKDIR /app COPY . . COPY --from=ui-builder /app/ui/dist /app/ui/dist RUN --mount=type=cache,target=/root/go/pkg/mod \ go mod download ARG TARGETOS ARG TARGETARCH RUN --mount=type=cache,target=/root/.cache/go-build \ CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH GOARM=7 GOAMD64=v3 \ go build -tags 'osusergo netgo' \ -ldflags "-s -w -extldflags -static" \ -o bin/validator ./dev/validator FROM scratch WORKDIR /app COPY --from=app-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=app-builder /app/bin/validator /app/validator ENTRYPOINT ["/app/validator"]