| # 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.9.0-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.9.0-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"] |