forked from goharbor/harbor-operator
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Dockerfile
43 lines (33 loc) · 881 Bytes
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Build the manager binary
FROM golang:1.13.4 as builder
WORKDIR /workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
ENV CGO_ENABLED=0 \
GOOS="linux" \
GO_APP_PKG="github.com/goharbor/harbor-operator" \
GO111MODULE=on
# Copy the go source
COPY main.go main.go
COPY api api
COPY pkg pkg
COPY controllers controllers
COPY assets assets
COPY hack hack
COPY Makefile Makefile
RUN make generate
COPY vendor vendor
# Build
RUN go build -a \
-ldflags "-X ${GO_APP_PKG}.OperatorVersion=${RELEASE_VERSION}" \
-o manager \
pkged.go \
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"]