|
| 1 | +FROM nvidia/cuda:11.4.3-base-ubuntu18.04 |
| 2 | + |
| 3 | +ENV NVIDIA_VISIBLE_DEVICES=void |
| 4 | + |
| 5 | +RUN echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections |
| 6 | + |
| 7 | +RUN dpkg --add-architecture i386 && \ |
| 8 | + apt-get update && apt-get install -y --no-install-recommends \ |
| 9 | + apt-transport-https \ |
| 10 | + apt-utils \ |
| 11 | + bc \ |
| 12 | + binutils \ |
| 13 | + build-essential \ |
| 14 | + ca-certificates \ |
| 15 | + curl \ |
| 16 | + gnupg2 \ |
| 17 | + jq \ |
| 18 | + kmod \ |
| 19 | + libc6:i386 \ |
| 20 | + libelf-dev \ |
| 21 | + libssl-dev \ |
| 22 | + module-init-tools \ |
| 23 | + software-properties-common && \ |
| 24 | + rm -rf /var/lib/apt/lists/* |
| 25 | + |
| 26 | +RUN echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic main" > /etc/apt/sources.list && \ |
| 27 | + echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic-updates main" >> /etc/apt/sources.list && \ |
| 28 | + echo "deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ bionic-security main" >> /etc/apt/sources.list && \ |
| 29 | + usermod -o -u 0 -g 0 _apt |
| 30 | + |
| 31 | +RUN curl -fsSL -o /usr/local/bin/donkey https://github.com/3XX0/donkey/releases/download/v1.1.0/donkey && \ |
| 32 | + curl -fsSL -o /usr/local/bin/extract-vmlinux https://raw.githubusercontent.com/torvalds/linux/master/scripts/extract-vmlinux && \ |
| 33 | + chmod +x /usr/local/bin/donkey /usr/local/bin/extract-vmlinux |
| 34 | + |
| 35 | +ARG BASE_URL=http://us.download.nvidia.com/XFree86/Linux-x86_64 |
| 36 | +ARG DRIVER_VERSION=535.154.05 |
| 37 | +ENV DRIVER_VERSION=$DRIVER_VERSION |
| 38 | +ENV DEBIAN_FRONTEND=noninteractive |
| 39 | + |
| 40 | +# Install the userspace components and copy the kernel module sources. |
| 41 | +RUN cd /tmp && \ |
| 42 | + curl -fSsl -O $BASE_URL/$DRIVER_VERSION/NVIDIA-Linux-x86_64-$DRIVER_VERSION.run && \ |
| 43 | + sh NVIDIA-Linux-x86_64-$DRIVER_VERSION.run -x && \ |
| 44 | + cd NVIDIA-Linux-x86_64-$DRIVER_VERSION* && \ |
| 45 | + ./nvidia-installer --silent \ |
| 46 | + --no-kernel-module \ |
| 47 | + --install-compat32-libs \ |
| 48 | + --no-nouveau-check \ |
| 49 | + --no-nvidia-modprobe \ |
| 50 | + --no-rpms \ |
| 51 | + --no-backup \ |
| 52 | + --no-check-for-alternate-installs \ |
| 53 | + --no-libglx-indirect \ |
| 54 | + --no-install-libglvnd \ |
| 55 | + --x-prefix=/tmp/null \ |
| 56 | + --x-module-path=/tmp/null \ |
| 57 | + --x-library-path=/tmp/null \ |
| 58 | + --x-sysconfig-path=/tmp/null && \ |
| 59 | + mkdir -p /usr/src/nvidia-$DRIVER_VERSION && \ |
| 60 | + mv LICENSE mkprecompiled kernel /usr/src/nvidia-$DRIVER_VERSION && \ |
| 61 | + sed '9,${/^\(kernel\|LICENSE\)/!d}' .manifest > /usr/src/nvidia-$DRIVER_VERSION/.manifest && \ |
| 62 | + rm -rf /tmp/* |
| 63 | + |
| 64 | +COPY nvidia-driver /usr/local/bin |
| 65 | + |
| 66 | +WORKDIR /usr/src/nvidia-$DRIVER_VERSION |
| 67 | + |
| 68 | +ARG PUBLIC_KEY=empty |
| 69 | +COPY ${PUBLIC_KEY} kernel/pubkey.x509 |
| 70 | + |
| 71 | +# Add NGC DL license from the CUDA image |
| 72 | +RUN mkdir /licenses && mv /NGC-DL-CONTAINER-LICENSE /licenses/NGC-DL-CONTAINER-LICENSE |
| 73 | + |
| 74 | +ENTRYPOINT ["nvidia-driver"] |
0 commit comments