1515# # limitations under the License.
1616# ##
1717ARG CMD=gpu_levelzero
18- ARG ROCKYLINUX=1
19- # # FINAL_BASE_DYN can be used to configure the base image of the final image.
20- # # The project default is 1) which sets FINAL_BASE_DYN=gcr.io/distroless/cc-debian12
21- # # (see build-image.sh).
22- # # 2) and the default FINAL_BASE is primarily used to build Redhat Certified Openshift Operator container images that must be UBI based.
23- # # The RedHat build tool does not allow additional image build parameters.
24- ARG BUILD_BASE=rockylinux:9
25- ARG FINAL_BASE_DYN=registry.access.redhat.com/ubi9/ubi-minimal:9.3
26- # ##
27- # # Use the BUILD_BASE when either the a) golang-trixie is updated to a newer glibc
28- # # or b) the intel-igc-core libraries are fixed to not to demand a newer glibc
29- FROM ${FINAL_BASE_DYN} AS builder
18+ ARG BUILD_BASE=golang:1.25-trixie
19+ FROM ${BUILD_BASE} AS builder
3020ARG DIR=/intel-device-plugins-for-kubernetes
3121ENV CGO_CFLAGS="-pipe -fno-plt"
3222ENV CGO_LDFLAGS="-fstack-protector-strong -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now,-z,noexecstack,-z,defs,-s,-w"
@@ -36,71 +26,48 @@ ENV ASMFLAGS="all=-spectre=all"
3626ENV LDFLAGS="all=-linkmode=external -s -w"
3727ARG GOLICENSES_VERSION
3828ARG CMD
39- ARG ROCKYLINUX
40- ARG CGO_VERSION=1.25
4129RUN mkdir /runtime
42- RUN if [ $ROCKYLINUX -eq 0 ]; then \
43- apt-get update && apt-get install --no-install-recommends -y wget jq curl libc6-dev ocl-icd-libopencl1 gcc ca-certificates && \
44- LATEST_GO=$(curl --no-progress-meter https://go.dev/dl/?mode=json | jq ".[] | select(.version | startswith(\" go${CGO_VERSION}\" )).version" | tr -d "\" " ) && \
45- wget -q https://go.dev/dl/$LATEST_GO.linux-amd64.tar.gz -O - | tar -xz -C /usr/local && \
46- cd /runtime && \
47- wget -q https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-core-2_2.20.3+19972_amd64.deb && \
48- wget -q https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-opencl-2_2.20.3+19972_amd64.deb && \
49- wget -q https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/intel-opencl-icd_25.40.35563.4-0_amd64.deb && \
50- wget -q https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libigdgmm12_22.8.2_amd64.deb && \
51- wget -q https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libze-intel-gpu1_25.40.35563.4-0_amd64.deb && \
52- wget -q https://github.com/oneapi-src/level-zero/releases/download/v1.24.3/level-zero_1.24.3+u22.04_amd64.deb && \
53- wget -q https://github.com/oneapi-src/level-zero/releases/download/v1.24.3/level-zero-devel_1.24.3+u22.04_amd64.deb && \
54- dpkg -i *.deb && \
55- rm -f *.deb && \
56- rm -rf /var/lib/apt/lists/\* ; \
57- else \
58- source /etc/os-release && dnf install -y gcc jq wget 'dnf-command(config-manager)' && \
59- dnf config-manager --add-repo https://repositories.intel.com/gpu/rhel/${VERSION_ID}/lts/2350/unified/intel-gpu-${VERSION_ID}.repo && \
60- dnf install -y intel-opencl level-zero level-zero-devel intel-level-zero-gpu intel-gmmlib intel-ocloc && \
61- dnf clean all && \
62- LATEST_GO=$(curl --no-progress-meter https://go.dev/dl/?mode=json | jq ".[] | select(.version | startswith(\" go${CGO_VERSION}\" )).version" | tr -d "\" " ) && \
63- wget -q https://go.dev/dl/$LATEST_GO.linux-amd64.tar.gz -O - | tar -xz -C /usr/local && \
64- cp -a /etc/OpenCL /usr/lib64/libocloc.so /usr/lib64/libze_intel_gpu.* /usr/lib64/libze_loader.* /usr/lib64/libigdgmm.* /runtime/ && \
65- mkdir /runtime/licenses/ && cd /usr/share/licenses/ && cp -a level-zero intel-gmmlib intel-level-zero-gpu intel-ocloc /runtime/licenses/; \
66- fi
30+ RUN apt-get update && apt-get install --no-install-recommends -y jq libc6-dev ocl-icd-libopencl1 gcc ca-certificates && \
31+ cd /runtime && \
32+ curl -sSLO https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-core-2_2.20.3+19972_amd64.deb && \
33+ curl -sSLO https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-opencl-2_2.20.3+19972_amd64.deb && \
34+ curl -sSLO https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/intel-opencl-icd_25.40.35563.4-0_amd64.deb && \
35+ curl -sSLO https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libigdgmm12_22.8.2_amd64.deb && \
36+ curl -sSLO https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libze-intel-gpu1_25.40.35563.4-0_amd64.deb && \
37+ curl -sSLO https://github.com/oneapi-src/level-zero/releases/download/v1.24.3/level-zero_1.24.3+u22.04_amd64.deb && \
38+ curl -sSLO https://github.com/oneapi-src/level-zero/releases/download/v1.24.3/level-zero-devel_1.24.3+u22.04_amd64.deb && \
39+ dpkg -i *.deb && \
40+ rm -f *.deb && \
41+ rm -rf /var/lib/apt/lists/\*
6742ARG EP=/usr/local/bin/intel_gpu_levelzero
68- ARG CMD
6943WORKDIR ${DIR}
7044COPY . .
71- # # Apply for the build phase as well as the license copy below the build.
72- ENV PATH=$PATH:/usr/local/go/bin/
7345RUN cd cmd/${CMD} && \
74- GO111MODULE=on CGO_ENABLED=1 go install $CGOFLAGS --gcflags="$GCFLAGS" --asmflags="$ASMFLAGS" --ldflags="$LDFLAGS"
75- RUN [ $ROCKYLINUX -eq 0 ] && install -D /go/bin/${CMD} /install_root${EP} || install -D /root /go/bin/${CMD} /install_root${EP}
46+ GO111MODULE=on CGO_ENABLED=1 go install $CGOFLAGS --gcflags="$GCFLAGS" --asmflags="$ASMFLAGS" --ldflags="$LDFLAGS" && \
47+ install -D /go/bin/${CMD} /install_root${EP}
7648RUN install -D ${DIR}/LICENSE /install_root/licenses/intel-device-plugins-for-kubernetes/LICENSE \
7749 && if [ ! -d "licenses/$CMD" ] ; then \
7850 GO111MODULE=on GOROOT=$(go env GOROOT) go run github.com/google/go-licenses@${GOLICENSES_VERSION} save "./cmd/$CMD" \
7951 --save_path /install_root/licenses/$CMD/go-licenses ; \
8052 else mkdir -p /install_root/licenses/$CMD/go-licenses/ && cd licenses/$CMD && cp -r * /install_root/licenses/$CMD/go-licenses/ ; fi && \
8153 echo "Verifying installed licenses" && test -e /install_root/licenses/$CMD/go-licenses
82- FROM ${FINAL_BASE_DYN}
54+ FROM debian:unstable-slim
8355ARG CMD
84- ARG ROCKYLINUX
8556COPY --from=builder /runtime /runtime
86- RUN if [ $ROCKYLINUX -eq 0 ]; then \
87- apt-get update && apt-get install --no-install-recommends -y ocl-icd-libopencl1 wget ca-certificates && \
88- cd /runtime && \
89- wget https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-core-2_2.20.3+19972_amd64.deb && \
90- wget https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-opencl-2_2.20.3+19972_amd64.deb && \
91- wget https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/intel-opencl-icd_25.40.35563.4-0_amd64.deb && \
92- wget https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libigdgmm12_22.8.2_amd64.deb && \
93- wget https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libze-intel-gpu1_25.40.35563.4-0_amd64.deb && \
94- wget https://github.com/oneapi-src/level-zero/releases/download/v1.24.3/level-zero_1.24.3+u22.04_amd64.deb && \
95- dpkg -i *.deb && \
96- apt-get -y remove wget ca-certificates && \
97- apt-get -y autoremove && \
98- rm -f *.deb && \
99- rm -rf /var/lib/apt/lists/\* && \
100- rm "/lib/x86_64-linux-gnu/libze_validation" * && rm "/lib/x86_64-linux-gnu/libze_tracing_layer" *; \
101- else \
102- cp -a /runtime//*.so* /usr/lib64/ && cp -a /runtime/OpenCL /etc/ && cp -a /runtime/licenses/* /usr/share/licenses/; \
103- fi
57+ RUN apt-get update && apt-get install --no-install-recommends -y ocl-icd-libopencl1 curl ca-certificates && \
58+ cd /runtime && \
59+ curl -sSLO https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-core-2_2.20.3+19972_amd64.deb && \
60+ curl -sSLO https://github.com/intel/intel-graphics-compiler/releases/download/v2.20.3/intel-igc-opencl-2_2.20.3+19972_amd64.deb && \
61+ curl -sSLO https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/intel-opencl-icd_25.40.35563.4-0_amd64.deb && \
62+ curl -sSLO https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libigdgmm12_22.8.2_amd64.deb && \
63+ curl -sSLO https://github.com/intel/compute-runtime/releases/download/25.40.35563.4/libze-intel-gpu1_25.40.35563.4-0_amd64.deb && \
64+ curl -sSLO https://github.com/oneapi-src/level-zero/releases/download/v1.24.3/level-zero_1.24.3+u22.04_amd64.deb && \
65+ dpkg -i *.deb && \
66+ apt-get -y remove ca-certificates && \
67+ apt-get -y autoremove && \
68+ rm -f *.deb && \
69+ rm -rf /var/lib/apt/lists/\* && \
70+ rm "/lib/x86_64-linux-gnu/libze_validation" * && rm "/lib/x86_64-linux-gnu/libze_tracing_layer" *
10471COPY --from=builder /install_root /
10572ENTRYPOINT ["/usr/local/bin/intel_gpu_levelzero" ]
10673LABEL vendor='Intel®'
0 commit comments