Files

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"]