# Copyright (c) 2019-2021, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ARG GOLANG_VERSION=x.x.x ARG VERSION="N/A" FROM nvidia/cuda:12.4.1-base-ubi8 as build RUN yum install -y \ wget make git gcc \ && \ rm -rf /var/cache/yum/* ARG GOLANG_VERSION=x.x.x RUN set -eux; \ \ arch="$(uname -m)"; \ case "${arch##*-}" in \ x86_64 | amd64) ARCH='amd64' ;; \ ppc64el | ppc64le) ARCH='ppc64le' ;; \ aarch64 | arm64) ARCH='arm64' ;; \ *) echo "unsupported architecture" ; exit 1 ;; \ esac; \ wget -nv -O - https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-${ARCH}.tar.gz \ | tar -C /usr/local -xz ENV GOPATH /go ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH WORKDIR /build COPY . . # NOTE: Until the config utilities are properly integrated into the # nvidia-container-toolkit repository, these are built from the `tools` folder # and not `cmd`. RUN GOPATH=/artifacts go install -ldflags="-s -w -X 'main.Version=${VERSION}'" ./tools/... FROM nvidia/cuda:12.4.1-base-ubi8 ENV NVIDIA_DISABLE_REQUIRE="true" ENV NVIDIA_VISIBLE_DEVICES=void ENV NVIDIA_DRIVER_CAPABILITIES=utility ARG ARTIFACTS_ROOT ARG PACKAGE_DIST COPY ${ARTIFACTS_ROOT}/${PACKAGE_DIST} /artifacts/packages/${PACKAGE_DIST} WORKDIR /artifacts/packages ARG PACKAGE_VERSION ARG TARGETARCH ENV PACKAGE_ARCH ${TARGETARCH} RUN PACKAGE_ARCH=${PACKAGE_ARCH/amd64/x86_64} && PACKAGE_ARCH=${PACKAGE_ARCH/arm64/aarch64} && \ yum localinstall -y \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/libnvidia-container1-1.*.rpm \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/libnvidia-container-tools-1.*.rpm \ ${PACKAGE_DIST}/${PACKAGE_ARCH}/nvidia-container-toolkit*-${PACKAGE_VERSION}*.rpm WORKDIR /work COPY --from=build /artifacts/bin /work ENV PATH=/work:$PATH LABEL io.k8s.display-name="NVIDIA Container Runtime Config" LABEL name="NVIDIA Container Runtime Config" LABEL vendor="NVIDIA" LABEL version="${VERSION}" LABEL release="N/A" LABEL summary="Automatically Configure your Container Runtime for GPU support." LABEL description="See summary" RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE ENTRYPOINT ["/work/nvidia-toolkit"]