29 lines
703 B
Docker
29 lines
703 B
Docker
# syntax=docker/dockerfile:1
|
|
|
|
# Stage 1: Build the static Go binary
|
|
FROM golang:1.27.1@sha256:d8c54b23d9b0dcbf6e1e69bbfb9f8f2b73059bb29c54e1de2f495ec9dfcb8ef0 AS builder
|
|
|
|
WORKDIR /src
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY cmd/ cmd/
|
|
COPY internal/ internal/
|
|
|
|
ARG TARGETOS
|
|
ARG TARGETARCH
|
|
|
|
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -trimpath -ldflags="-s -w" -o /n95bridge ./cmd/n95bridge
|
|
|
|
# Stage 2: Minimal non-root distroless runtime
|
|
FROM gcr.io/distroless/static-debian12:nonroot@sha256:6ec646aa5008ab558e658ec354ee11fa6770559e8697b0a88094ae4a899dd3b3
|
|
|
|
COPY --from=builder /n95bridge /n95bridge
|
|
|
|
USER 65532:65532
|
|
|
|
EXPOSE 8005 8007 5223 8080
|
|
|
|
ENTRYPOINT ["/n95bridge"]
|