# Build stage FROM golang:1.26 AS builder WORKDIR /app # Download dependencies first (layer cache) COPY go.mod go.sum ./ RUN go mod download # Copy source and build COPY . . ARG VERSION=dev RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w -X main.Version=${VERSION}" -o /keymanager-server ./cmd # Runtime stage FROM scratch COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /keymanager-server /keymanager-server EXPOSE 8080 9090 ENTRYPOINT ["/keymanager-server"]