Dockerfile 2004

将以下的代码新建一个文件:Dockerfile

FROM amd64/ubuntu:20.04

LABEL VERSION="0.1.0"

ARG DEBIAN_FRONTEND=noninteractive
USER root

# change source to tencent cloud
RUN apt-get update && apt-get -yq install apt-transport-https wget
RUN sed -i "s#http://archive.ubuntu.com/ubuntu#http://mirrors.ustc.edu.cn/ubuntu/#g" /etc/apt/sources.list

RUN apt-get update && apt-get install -yq gnupg apt-utils sudo vim \
    autoconf automake dialog libtool pkg-config libffi-dev \
    libexpat1-dev libpciaccess-dev libxml2-dev \
    bison flex xutils-dev zlib1g-dev ninja-build git locate \
    zip unzip g++ curl \
    # install ssh
    openssh-server openssh-client \
    # fix hexdump missing issue
    bsdmainutils \
    libibverbs-dev \
    # install python2
    python3 python3-pip python3-tk && \
    apt-get clean

RUN apt-get install -yq software-properties-common && add-apt-repository -y ppa:deadsnakes/ppa && \
    apt-get update

# 安装 python2-pip,并设置pip源为ustc
RUN apt-get install python2 python2-dev -y && curl https://bootstrap.pypa.io/pip/2.7/get-pip.py | python2
RUN python2 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \
    pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn

# 安装python3.8
RUN apt-get install -yq python3.8-dev python3.8-tk

# 安装python3.8 的pip依赖
RUN python3.8 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    python3.8 -m pip install --no-cache-dir wheel numpy pandas pillow requests future futures urllib3

# 安装python3.7
RUN apt-get install -yq python3.7-dev python3.7-tk python3.7-distutils && \
    curl https://bootstrap.pypa.io/get-pip.py | python3.7

# 安装python3.7 的pip依赖
RUN python3.7 -m pip install --upgrade pip==20.3.4 setuptools==44.0.0 && \
    python3.7 -m pip install --no-cache-dir wheel numpy pandas pillow requests future futures urllib3

# 本地语言设置
RUN apt-get -yq install locales && locale-gen en_US.UTF-8 zh_CN.UTF-8


# 安装cmake特定版本
RUN cd /tmp && wget https://cmake.org/files/v3.22/cmake-3.22.1-linux-x86_64.sh && \
    bash +x cmake-3.22.1-linux-x86_64.sh --prefix=/usr --exclude-subdir && \
    rm -rf *

# 设置python coding 模式
ENV PYTHONIOENCODING=utf-8

# 安装openjdk-11
RUN apt-get install openjdk-11-jdk -y

# 安装bazel
RUN cd /tmp && wget https://github.com/bazelbuild/bazel/releases/download/1.2.1/bazel-1.2.1-installer-linux-x86_64.sh && \
    bash +x bazel-1.2.1-installer-linux-x86_64.sh --user && \
    export PATH="$PATH:$HOME/bin" && \
    rm -rf *

# 安装bazelisk
# RUN wget https://github.com/bazelbuild/bazelisk/releases/download/v1.7.5/bazelisk-linux-amd64 -O /usr/bin/bazelisk && \
#     chmod 777 /usr/bin/bazelisk && \
#     bazelisk --version

# 安装 ubuntu-drivers-common  ======> 查看显卡信息
RUN sudo apt-get install -yq ubuntu-drivers-common && \
    sudo ubuntu-drivers autoinstall

RUN echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/extras/CPUTI/lib64\nexport CUDA_PATH=/usr/local/cuda/bin\nexport PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_PATH\n">> /root/.bashrc

# 安装CUDA
RUN cd /tmp && \
    wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin && \
    sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 && \
    wget https://developer.download.nvidia.com/compute/cuda/11.7.0/local_installers/cuda-repo-ubuntu2004-11-7-local_11.7.0-515.43.04-1_amd64.deb && \
    sudo dpkg -i cuda-repo-ubuntu2004-11-7-local_11.7.0-515.43.04-1_amd64.deb && \
    sudo cp /var/cuda-repo-ubuntu2004-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/ && \
    sudo apt-get update && \
    sudo apt-get -y install cuda nvidia-cuda-toolkit && \
    rm -rf *

# 安装cuDNN =======> 需要登陆Nvidia 账户,然后下载文件,所以该处脚本最好根据情况更新, 本人文件下载到了当前文件所在的路径下
COPY ./cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz /tmp 
RUN cd /tmp && \
    tar -xvf cudnn-linux-x86_64-8.5.0.96_cuda11-archive.tar.xz && \
    mv cudnn-linux-x86_64-8.5.0.96_cuda11-archive cuda && \
    sudo cp cuda/include/cudnn.h /usr/local/cuda/include && \
    sudo cp cuda/lib/libcudnn* /usr/local/cuda/lib64 && \
    sudo chmod a+r /usr/local/cuda/include/cudnn.h && \
    sudo chmod a+r /usr/local/cuda/lib64/libcudnn* && \
    rm -rf *

WORKDIR /home

EXPOSE 3777
ENTRYPOINT service ssh restart && bash