vino/Dockerfile
Matt McEuen 31a1fc0ad9 Move go packages to vino/pkg
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
2021-01-15 10:58:02 -06:00

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"]