31a1fc0ad9
This organizes our go packages under a "pkg/" directory, which will help keep them separated from other things (tools, config, ...), especially as the number of packages grows. It also brings vino in line with conventions used by sip, airshipctl, and the k8s community. Change-Id: Ieea0cdde7eeea9400384ca45bb5830322bbe0a82
29 lines
824 B
Docker
29 lines
824 B
Docker
# Build the manager binary
|
|
FROM gcr.io/gcp-runtimes/go1-builder:1.13 as builder
|
|
|
|
ENV PATH "/usr/local/go/bin:$PATH"
|
|
|
|
WORKDIR /workspace
|
|
# Copy the Go Modules manifests
|
|
COPY go.mod go.mod
|
|
COPY go.sum go.sum
|
|
# cache deps before building and copying source so that we don't need to re-download as much
|
|
# and so that source changes don't invalidate our downloaded layer
|
|
RUN go mod download
|
|
|
|
# Copy the go source
|
|
COPY main.go main.go
|
|
COPY pkg pkg/
|
|
|
|
# Build
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o manager main.go
|
|
|
|
# Use distroless as minimal base image to package the manager binary
|
|
# Refer to https://github.com/GoogleContainerTools/distroless for more details
|
|
FROM gcr.io/distroless/static:nonroot
|
|
WORKDIR /
|
|
COPY --from=builder /workspace/manager .
|
|
USER nonroot:nonroot
|
|
|
|
ENTRYPOINT ["/manager"]
|