forked from vmware-tanzu/vm-operator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
110 lines (72 loc) · 2.26 KB
/
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Go version used to build the binaries.
ARG GO_VERSION=1.23
## Docker image used to build the binaries.
FROM golang:${GO_VERSION} as builder
## --------------------------------------
## Multi-platform support
## --------------------------------------
ARG TARGETOS
ARG TARGETARCH
## --------------------------------------
## Environment variables
## --------------------------------------
ENV GOOS=${TARGETOS}
ENV GOARCH=${TARGETARCH}
## --------------------------------------
## Build information
## --------------------------------------
ARG BUILD_COMMIT
ARG BUILD_NUMBER
ARG BUILD_VERSION
ENV BUILD_COMMIT=${BUILD_COMMIT}
ENV BUILD_NUMBER=${BUILD_NUMBER}
ENV BUILD_VERSION=${BUILD_VERSION}
## --------------------------------------
## Configure the working directory
## --------------------------------------
WORKDIR /workspace
## --------------------------------------
## Copy in local sources
## --------------------------------------
# Copy the sources
COPY ./ ./
## --------------------------------------
## Build the binaries
## --------------------------------------
# Build
RUN make manager-only
RUN make web-console-validator-only
## --------------------------------------
## Create the manager image
## --------------------------------------
# Copy the controller-manager into a thin image
FROM gcr.io/distroless/static-debian11
## --------------------------------------
## Multi-platform support
## --------------------------------------
ARG TARGETOS
ARG TARGETARCH
## --------------------------------------
## Environment variables
## --------------------------------------
ENV GOOS=${TARGETOS}
ENV GOARCH=${TARGETARCH}
## --------------------------------------
## Build information
## --------------------------------------
ARG BUILD_BRANCH
ARG BUILD_COMMIT
ARG BUILD_NUMBER
ARG BUILD_VERSION
## --------------------------------------
## Image labels
## --------------------------------------
LABEL buildNumber=$BUILD_NUMBER commit=$BUILD_COMMIT branch=$BUILD_BRANCH version=$BUILD_VERSION
## --------------------------------------
## Copy the binaries from the builder
## --------------------------------------
WORKDIR /
COPY --from=builder /workspace/bin/manager .
COPY --from=builder /workspace/bin/web-console-validator .
USER nobody
ENTRYPOINT ["/manager"]