github.com/crossplane-contrib/function-cue@v0.2.2-0.20240508161918-5100fcb5a058/Dockerfile (about)

     1  # syntax=docker/dockerfile:1
     2  
     3  ARG GO_VERSION=1
     4  
     5  # setup the base environment.
     6  FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION} AS base
     7  
     8  WORKDIR /fn
     9  ENV CGO_ENABLED=0
    10  
    11  ARG LDFLAGS="-X 'main.Version=unknown'"
    12  
    13  COPY go.mod go.sum ./
    14  RUN --mount=type=cache,target=/go/pkg/mod go mod download
    15  
    16  # build the function.
    17  FROM base AS build
    18  ARG TARGETOS
    19  ARG TARGETARCH
    20  RUN --mount=target=. \
    21      --mount=type=cache,target=/go/pkg/mod \
    22      --mount=type=cache,target=/root/.cache/go-build \
    23      GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags="${LDFLAGS}" -o /function ./
    24  
    25  # produce the function image.
    26  FROM gcr.io/distroless/base-debian11 AS image
    27  WORKDIR /
    28  COPY --from=build /function ./
    29  EXPOSE 9443
    30  USER nonroot:nonroot
    31  ENTRYPOINT ["/function"]