# The cache provisioner, as a module ships one. # # FROM scratch, like the postgres one and unlike the bucket one: it speaks the store's own wire # protocol directly and needs no client in the image. # The Go it builds with is the one the manifest pins (build.on GO_BASE), passed by the Makefile and the # build machine alike; the default only serves a hand build, and matches go.mod. ARG GO_BASE=golang:1.26-alpine FROM ${GO_BASE} AS build WORKDIR /src COPY go.mod go.sum ./ RUN go mod download COPY . . RUN CGO_ENABLED=0 go build -trimpath -ldflags '-s -w' \ -o /mesh-provision-redis ./examples/redis-provisioner FROM scratch COPY --from=build /mesh-provision-redis /mesh-provision-redis # Watching by default, because that is what makes it a module: an ordinary long-running service # the host supervises, rather than something invoked after every declaration. ENTRYPOINT ["/mesh-provision-redis", "--watch"]