FROM --platform=${BUILDPLATFORM} golang:1.26-alpine3.23 AS builder

WORKDIR /workspace

COPY go.mod go.sum /workspace/
RUN go mod download

COPY cmd /workspace/cmd
COPY private /workspace/private

ARG TARGETOS
ARG TARGETARCH
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} \
  go build -ldflags "-s -w" -trimpath -buildvcs=false -o /go/bin/buf ./cmd/buf

FROM alpine:3.23.4

RUN apk add --update --no-cache \
    ca-certificates \
    git \
    openssh-client && \
  rm -rf /var/cache/apk/*

COPY --from=builder /go/bin/buf /usr/local/bin/buf

ENTRYPOINT ["/usr/local/bin/buf"]
