1ARG UBUNTU_VERSION 2 3FROM ubuntu:${UBUNTU_VERSION} 4 5ARG UBUNTU_VERSION 6 7ENV DEBIAN_FRONTEND noninteractive 8 9# Install common dependencies (so that this step can be cached separately) 10COPY ./common/install_base.sh install_base.sh 11RUN bash ./install_base.sh && rm install_base.sh 12 13# Install missing libomp-dev 14RUN apt-get update && apt-get install -y --no-install-recommends libomp-dev && apt-get autoclean && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 15 16# Install user 17COPY ./common/install_user.sh install_user.sh 18RUN bash ./install_user.sh && rm install_user.sh 19 20# Install conda and other packages (e.g., numpy, pytest) 21ARG ANACONDA_PYTHON_VERSION 22ARG CONDA_CMAKE 23ENV ANACONDA_PYTHON_VERSION=$ANACONDA_PYTHON_VERSION 24ENV PATH /opt/conda/envs/py_$ANACONDA_PYTHON_VERSION/bin:/opt/conda/bin:$PATH 25COPY requirements-ci.txt /opt/conda/requirements-ci.txt 26COPY ./common/install_conda.sh install_conda.sh 27COPY ./common/common_utils.sh common_utils.sh 28RUN bash ./install_conda.sh && rm install_conda.sh common_utils.sh /opt/conda/requirements-ci.txt 29 30# Install cuda and cudnn 31ARG CUDA_VERSION 32COPY ./common/install_cuda.sh install_cuda.sh 33RUN bash ./install_cuda.sh ${CUDA_VERSION} && rm install_cuda.sh 34ENV DESIRED_CUDA ${CUDA_VERSION} 35ENV PATH /usr/local/nvidia/bin:/usr/local/cuda/bin:$PATH 36 37# Note that Docker build forbids copying file outside the build context 38COPY ./common/install_linter.sh install_linter.sh 39COPY ./common/common_utils.sh common_utils.sh 40RUN bash ./install_linter.sh 41RUN rm install_linter.sh common_utils.sh 42 43USER jenkins 44CMD ["bash"] 45