github.com/ironcore-dev/gardener-extension-provider-ironcore@v0.3.2-0.20240314231816-8336447fb9a0/Dockerfile (about)

     1  # Build the manager binary
     2  FROM --platform=$BUILDPLATFORM golang:1.22.1 as builder
     3  
     4  ARG GOARCH=''
     5  
     6  WORKDIR /workspace
     7  # Copy the Go Modules manifests
     8  COPY go.mod go.mod
     9  COPY go.sum go.sum
    10  # cache deps before building and copying source so that we don't need to re-download as much
    11  # and so that source changes don't invalidate our downloaded layer
    12  RUN --mount=type=cache,target=/root/.cache/go-build \
    13      --mount=type=cache,target=/go/pkg \
    14      go mod download
    15  
    16  # Copy the go source
    17  COPY cmd/ cmd/
    18  COPY pkg/ pkg/
    19  COPY charts/ charts/
    20  COPY imagevector/ imagevector/
    21  
    22  ARG TARGETOS
    23  ARG TARGETARCH
    24  
    25  # Build
    26  RUN --mount=type=cache,target=/root/.cache/go-build \
    27      --mount=type=cache,target=/go/pkg \
    28      CGO_ENABLED=0 GOOS=linux GOARCH=${GOARCH} go build -a -o gardener-extension-provider-ironcore ./cmd/gardener-extension-provider-ironcore/main.go && \
    29      CGO_ENABLED=0 GOOS=linux GOARCH=${GOARCH} go build -a -o gardener-extension-admission-ironcore ./cmd/gardener-extension-admission-ironcore/main.go
    30  
    31  # Use distroless as minimal base image to package the manager binary
    32  # Refer to https://github.com/GoogleContainerTools/distroless for more details
    33  FROM gcr.io/distroless/static:nonroot AS gardener-extension-provider-ironcore
    34  WORKDIR /
    35  COPY charts /charts
    36  COPY --from=builder /workspace/gardener-extension-provider-ironcore /gardener-extension-provider-ironcore
    37  USER 65532:65532
    38  
    39  ENTRYPOINT ["/gardener-extension-provider-ironcore"]
    40  
    41  FROM gcr.io/distroless/static:nonroot AS gardener-extension-admission-ironcore
    42  WORKDIR /
    43  COPY charts /charts
    44  COPY --from=builder /workspace/gardener-extension-admission-ironcore /gardener-extension-admission-ironcore
    45  USER 65532:65532
    46  
    47  ENTRYPOINT ["/gardener-extension-admission-ironcore"]