@@ -12,16 +12,35 @@ ARG STIG_COMPLIANT=false
1212# Final clean image of precompiled driver container
1313ARG D_FINAL_BASE_IMAGE=registry.access.redhat.com/ubi9/ubi:latest
1414
15- ##################################################################
16- # Stage: Minimal base image update and install common requirements
17-
1815# DTK base image (below example for specific kernel headers version)
1916ARG D_BASE_IMAGE="registry.redhat.io/openshift4/driver-toolkit-rhel9:v4.13.0-202309112001.p0.gd719bdc.assembly.stream"
2017# Standart: registry.access.redhat.com/ubi9:latest
2118
2219ARG D_PYTHON_VERSION="36"
2320ARG D_PYTHON="python${D_PYTHON_VERSION}"
2421
22+ ##################################################################
23+ # Stage: build go binary for entrypoint
24+ FROM golang:1.24 AS go_builder
25+
26+ # Set GOPROXY if provided
27+ ARG GOPROXY
28+ ENV GOPROXY=$GOPROXY
29+
30+ WORKDIR /workspace
31+
32+ COPY entrypoint/go.mod go.mod
33+ COPY entrypoint/go.sum go.sum
34+
35+ RUN go mod download
36+
37+ COPY entrypoint/ .
38+
39+ RUN TARGETARCH=${D_ARCH} TARGETOS=linux make build
40+
41+ ##################################################################
42+ # Stage: Minimal base image update and install common requirements
43+
2544FROM $D_BASE_IMAGE AS base
2645
2746# Inherited global args
@@ -38,6 +57,13 @@ RUN set -x && \
3857# Container functional requirements
3958 jq iproute kmod procps-ng udev
4059
60+ COPY --from=go_builder /workspace/build/entrypoint /root/entrypoint
61+ WORKDIR /root
62+ ADD ./entrypoint.sh /root/entrypoint.sh
63+ ADD ./loader.sh /root/loader.sh
64+
65+ ENTRYPOINT ["/root/loader.sh"]
66+
4167##############################################################################################
4268# Stage: Download NVIDIA driver sources and install src driver container packages requirements
4369
@@ -78,7 +104,7 @@ RUN if file ${D_OFED_SRC_ARCHIVE} | grep compressed; then \
78104 mv ${D_OFED_SRC_ARCHIVE}/MLNX_OFED_SRC-${D_OFED_VERSION} . ; \
79105 fi
80106
81- WORKDIR /
107+ WORKDIR /root
82108ADD ./entrypoint.sh /root/entrypoint.sh
83109ADD ./dtk_nic_driver_build.sh /root/dtk_nic_driver_build.sh
84110
@@ -92,7 +118,7 @@ RUN set -x && \
92118 fi && \
93119 rm -f /tmp/stig-fixer.sh
94120
95- ENTRYPOINT ["/root/entrypoint .sh"]
121+ ENTRYPOINT ["/root/loader .sh"]
96122CMD ["sources"]
97123
98124LABEL doca-version=${D_DOCA_VERSION}
@@ -149,9 +175,11 @@ RUN touch /lib/modules/${D_KERNEL_VER}/modules.order /lib/modules/${D_KERNEL_VER
149175# Introduce installed kernel modules
150176 depmod ${D_KERNEL_VER}
151177
152- WORKDIR /
178+ WORKDIR /root
153179ADD ./entrypoint.sh /root/entrypoint.sh
180+ ADD ./loader.sh /root/loader.sh
181+ COPY --from=go_builder /workspace/build/entrypoint /root/entrypoint
154182ADD ./dtk_nic_driver_build.sh /root/dtk_nic_driver_build.sh
155183
156- ENTRYPOINT ["/root/entrypoint .sh"]
184+ ENTRYPOINT ["/root/loader .sh"]
157185CMD ["precompiled"]
0 commit comments