api/Dockerfile
# syntax = docker/dockerfile:experimentalFROM golang:1.24 as builder ARG version=dev WORKDIR /workspace COPY go.mod go.sum ./ RUN --mount=type=cache,target=/go/pkg/mod \ go mod download COPY api apiCOPY controllers/api controllers/apiCOPY controllers/controllers/shared controllers/controllers/sharedCOPY controllers/controllers/workloads controllers/controllers/workloadsCOPY controllers/controllers/services/credentials controllers/controllers/services/credentialsCOPY controllers/controllers/services/osbapi controllers/controllers/services/osbapiCOPY controllers/webhooks controllers/webhooksCOPY tools toolsCOPY version version RUN --mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/go/pkg/mod \ CGO_ENABLED=0 GOOS=linux go build -ldflags "-X code.cloudfoundry.org/korifi/version.Version=${version}" -o cfapi api/main.go # Use distroless as minimal base image to package the manager binary# Refer to https://github.com/GoogleContainerTools/distroless for more detailsFROM gcr.io/distroless/static:nonroot WORKDIR /COPY --from=builder /workspace/cfapi .USER 1000:1000 ENTRYPOINT [ "/cfapi" ]