1
1
# syntax=docker/dockerfile:1
2
2
ARG PYTHON_VERSION=3.8
3
+ ARG CUDA_VERSION=11.8
3
4
FROM python:$PYTHON_VERSION-slim AS base
4
5
5
- ARG CUDA=11.8
6
- ARG NV_CUDA_CUDART_VERSION=11.8.89-1
7
- ARG NV_CUDA_COMPAT_PACKAGE=cuda-compat-11-8
8
- # CUDDN
9
- ARG CUDNN_VERSION=8.6.0.163-1+cuda11.8
10
- # TensorRT
11
- ARG LIBINVER_VERSION=8.4.3-1+cuda11.6
12
-
13
- # NVIDIA: https://gitlab.com/nvidia/container-images/cuda/-/blob/master/dist/11.8.0/ubuntu2204/base/Dockerfile
14
- # specify the version of the CUDA Toolkit to use and the which driver versions are compatible for each brand of GPU.
15
-
16
- ENV NVARCH x86_64
17
- ENV CUDA $CUDA
18
- ENV CUDNN_VERSION $CUDNN_VERSION
19
- ENV NV_CUDA_CUDART_VERSION $NV_CUDA_CUDART_VERSION
20
- ENV NV_CUDA_COMPAT_PACKAGE $NV_CUDA_COMPAT_PACKAGE
21
- ENV LIBINVER_VERSION $LIBINVER_VERSION
22
- ENV NVIDIA_REQUIRE_CUDA "cuda>=$CUDA brand=tesla,driver>=450,driver<451 brand=tesla,driver>=470,driver<471 brand=unknown,driver>=470,driver<471 brand=nvidia,driver>=470,driver<471 brand=nvidiartx,driver>=470,driver<471 brand=geforce,driver>=470,driver<471 brand=geforcertx,driver>=470,driver<471 brand=quadro,driver>=470,driver<471 brand=quadrortx,driver>=470,driver<471 brand=titan,driver>=470,driver<471 brand=titanrtx,driver>=470,driver<471 brand=tesla,driver>=510,driver<511 brand=unknown,driver>=510,driver<511 brand=nvidia,driver>=510,driver<511 brand=nvidiartx,driver>=510,driver<511 brand=geforce,driver>=510,driver<511 brand=geforcertx,driver>=510,driver<511 brand=quadro,driver>=510,driver<511 brand=quadrortx,driver>=510,driver<511 brand=titan,driver>=510,driver<511 brand=titanrtx,driver>=510,driver<511 brand=tesla,driver>=515,driver<516 brand=unknown,driver>=515,driver<516 brand=nvidia,driver>=515,driver<516 brand=nvidiartx,driver>=515,driver<516 brand=geforce,driver>=515,driver<516 brand=geforcertx,driver>=515,driver<516 brand=quadro,driver>=515,driver<516 brand=quadrortx,driver>=515,driver<516 brand=titan,driver>=515,driver<516 brand=titanrtx,driver>=515,driver<516"
23
-
24
- # Updates the package index and installs the necessarys packages to add the CUDA repository, including `gnupg2`, `curl`, and `ca-certificates`.
25
- RUN apt-get update && apt-get install -y --no-install-recommends \
26
- gnupg2 curl ca-certificates && \
27
- curl -fsSLO https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/${NVARCH}/cuda-keyring_1.0-1_all.deb && \
28
- dpkg -i cuda-keyring_1.0-1_all.deb && \
29
- apt-get purge --autoremove -y curl \
30
- && rm -rf /var/lib/apt/lists/*
31
-
32
- # Install CUDA Toolkit, cuDNN SDK, optionally TensorRT
33
- RUN apt-get update && apt-get install -y --no-install-recommends \
34
- cuda-cudart-${CUDA%.*}-${CUDA#*.}=${NV_CUDA_CUDART_VERSION} \
35
- ${NV_CUDA_COMPAT_PACKAGE} \
36
- cuda-command-line-tools-${CUDA%.*}-${CUDA#*.} \
37
- libcublas-dev-${CUDA%.*}-${CUDA#*.} \
38
- cuda-nvcc-${CUDA%.*}-${CUDA#*.} \
39
- libcublas-${CUDA%.*}-${CUDA#*.} \
40
- cuda-cupti-${CUDA%.*}-${CUDA#*.} \
41
- cuda-nvrtc-${CUDA%.*}-${CUDA#*.} \
42
- cuda-nvprune-${CUDA%.*}-${CUDA#*.} \
43
- cuda-libraries-${CUDA%.*}-${CUDA#*.} \
44
- libcufft-${CUDA%.*}-${CUDA#*.} \
45
- libcurand-${CUDA%.*}-${CUDA#*.} \
46
- libcusolver-${CUDA%.*}-${CUDA#*.} \
47
- libcusparse-${CUDA%.*}-${CUDA#*.} \
48
- libtool \
49
- libcudnn8=${CUDNN_VERSION}\
50
- libnvinfer8=${LIBINVER_VERSION} \
51
- libnvinfer-plugin8=${LIBINVER_VERSION} \
52
- build-essential \
53
- pkg-config \
54
- software-properties-common \
55
- unzip && \
56
- find /usr/local/cuda-${CUDA}/lib64/ -type f -name 'lib*_static.a' -not -name 'libcudart_static.a' -delete \
57
- && apt-get clean && \
6
+ # Install wget.
7
+ RUN apt-get update && \
8
+ apt-get install --yes wget && \
9
+ apt-get clean && \
58
10
rm -rf /var/lib/apt/lists/*
59
11
60
- # # Required for nvidia-docker v1
61
- RUN echo "/usr/local/nvidia/lib" >> /etc/ld.so.conf.d/nvidia.conf \
62
- && echo "/usr/local/nvidia/lib64" >> /etc/ld.so.conf.d/nvidia.conf
63
-
64
- # Sets environment variables that are required by the `nvidia-container-runtime` to expose all the NVIDIA devices and enable compute and utility capabilities
65
- ENV NVIDIA_VISIBLE_DEVICES all
66
- ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
12
+ # Install Miniconda.
13
+ RUN CONDA_ARCH=$([ "$TARGETARCH" = "arm64" ] && echo "aarch64" || echo "x86_64" ) && \
14
+ wget --quiet "https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-$CONDA_ARCH.sh" --output-document ~/miniconda.sh && \
15
+ /bin/bash ~/miniconda.sh -b -p /opt/conda
16
+ ENV PATH=/opt/conda/bin:$PATH
67
17
68
- # Adds the NVIDIA binary paths to the system's `PATH` environment variable.
69
- ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH}
70
- ENV LD_LIBRARY_PATH /usr/local/nvidia/lib:/usr/local/nvidia/lib64
18
+ # Install CUDA.
19
+ RUN conda install --channel nvidia --yes cuda="$CUDA_VERSION"
0 commit comments