FROM docker.io/golang:1.24-alpine AS builder

ENV CGO_ENABLED=0

WORKDIR /src

RUN \
    --mount=type=cache,target=/go/pkg/mod \
    --mount=type=bind,source=./go.mod,target=./go.mod,rw=false \
    --mount=type=bind,source=./go.sum,target=./go.sum,rw=false \
    go mod download

COPY . ./

RUN --mount=type=cache,target=/root/.cache/go-build \
    --mount=type=cache,target=/go/pkg/mod \
    mkdir -p ./out && \
    go build -o ./out/pg_v_man -trimpath -ldflags '-s -w' main.go

FROM gcr.io/distroless/static:nonroot

WORKDIR /app

COPY --from=builder /src/out/pg_v_man ./

ENTRYPOINT ["/app/pg_v_man"]