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