blob: b3158b2eeb0c6b10632159a477ee4c9a968753c2 [file] [log] [blame]
Giorgi Lekveishvili7366dbb2023-06-16 12:31:03 +04001# Build the manager binary
2FROM golang:1.18 as builder
3
4WORKDIR /workspace
5# Copy the Go Modules manifests
6COPY go.mod go.mod
7COPY go.sum go.sum
8# cache deps before building and copying source so that we don't need to re-download as much
9# and so that source changes don't invalidate our downloaded layer
10RUN go mod download
11
12# Copy the go source
13COPY main.go main.go
14COPY api/ api/
15COPY controllers/ controllers/
16
17# Build
Giorgi Lekveishvili44f9d592023-06-21 14:58:19 +040018RUN CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -a -o manager main.go
Giorgi Lekveishvili7366dbb2023-06-16 12:31:03 +040019
20# Use distroless as minimal base image to package the manager binary
21# Refer to https://github.com/GoogleContainerTools/distroless for more details
22FROM gcr.io/distroless/static:nonroot
23WORKDIR /
24COPY --from=builder /workspace/manager .
25USER 65532:65532
26
27ENTRYPOINT ["/manager"]