Skip to content
File

Blob: Dockerfile.validator

875 bytes
1# syntax=docker/dockerfile:1
2 
3FROM --platform=$BUILDPLATFORM node:22.14.0-alpine AS ui-builder
4RUN apk --no-cache add make
5WORKDIR /app
6COPY . .
7 
8RUN make ui
9 
10FROM --platform=$BUILDPLATFORM golang:1.27.1-alpine AS app-builder
11RUN apk --no-cache add ca-certificates git
12WORKDIR /app
13COPY . .
14COPY --from=ui-builder /app/ui/dist /app/ui/dist
15 
16RUN --mount=type=cache,target=/root/go/pkg/mod \
17 go mod download
18 
19ARG TARGETOS
20ARG TARGETARCH
21RUN --mount=type=cache,target=/root/.cache/go-build \
22 CGO_ENABLED=0 GOOS=$TARGETOS GOARCH=$TARGETARCH GOARM=7 GOAMD64=v3 \
23 go build -tags 'osusergo netgo' \
24 -ldflags "-s -w -extldflags -static" \
25 -o bin/validator ./dev/validator
26 
27FROM scratch
28WORKDIR /app
29COPY --from=app-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
30COPY --from=app-builder /app/bin/validator /app/validator
31 
32ENTRYPOINT ["/app/validator"]