-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathDockerfile.rhtap
52 lines (43 loc) · 1.91 KB
/
Dockerfile.rhtap
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
# Build the addon controller binary
FROM brew.registry.redhat.io/rh-osbs/openshift-golang-builder:rhel_9_1.23 AS builder
USER root
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 .
COPY controllers/ controllers/
# Build
# We don't vendor modules. Enforce that behavior
ENV GOFLAGS=-mod=readonly
ENV CGO_ENABLED=1
ARG versionFromGit_arg="(unknown)"
ARG commitFromGit_arg="(unknown)"
RUN GOOS=linux GOARCH=amd64 GO111MODULE=on go build -a -o controller -ldflags "-X main.versionFromGit=${versionFromGit_arg} -X main.commitFromGit=${commitFromGit_arg}" main.go
# Final container
FROM registry.redhat.io/ubi9/ubi-minimal:latest
# RUN microdnf -y --refresh update && \
# microdnf clean all
LABEL \
name="volsync-addon-controller" \
com.redhat.component="volsync-addon-controller" \
description="An addon controller for Red Hat Advanced Cluster Management (ACM) that deploys the VolSync \
operator on managed clusters based on ManagedClusterAddOn custom resources (CRs)." \
io.k8s.description="An addon controller for Red Hat Advanced Cluster Management (ACM) that deploys the VolSync \
operator on managed clusters based on ManagedClusterAddOn custom resources (CRs)." \
summary="A controller addon for Red Hat ACM that deploys the VolSync operator \
on managed clusters using ManagedClusterAddOn CRs." \
io.k8s.display-name="Red Hat Advanced Cluster Management Volsync Addon Controller" \
io.openshift.tags="acm volsync-addon-controller"
WORKDIR /
COPY --from=builder /workspace/controller .
# VolSync helm charts
COPY helmcharts/ helmcharts/
# uid/gid: nobody/nobody
USER 65534:65534
ENV EMBEDDED_CHARTS_DIR=/helmcharts
ENTRYPOINT ["/controller"]