Dockerfile:Deeplearning_Playland

54 篇文章 4 订阅
41 篇文章 5 订阅

ARG CUDA_VERSION=11.1
FROM nvidia/cuda:${CUDA_VERSION}-cudnn8-devel-ubuntu20.04


MAINTAINER "Ammar Yasir Niach   email:ammar.naich@gmail.com"


ENV DEBIAN_FRONTEND noninteractive
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility

ARG PYTHON_VERSION=3.8
ARG OPENCV_VERSION=4.5.0

# Needed for string substitution
SHELL ["/bin/bash", "-c"]

ENV DEBIAN_FRONTEND=noninteractive


# ENV LD_LIBRARY_PATH /usr/local/${CUDA}/compat:$LD_LIBRARY_PATH

COPY gpu_requirements.txt ./

# Add CUDA libs paths
RUN CUDA_PATH=(/usr/local/cuda-*) && \
    CUDA=`basename $CUDA_PATH` && \
    echo "$CUDA_PATH/compat" >> /etc/ld.so.conf.d/${CUDA/./-}.conf && \
    ldconfig && \
# add sources for older pythons
    apt-get update && \
    apt-get install -y --no-install-recommends software-properties-common && \
    add-apt-repository ppa:deadsnakes/ppa && \

# Install all dependencies for OpenCV
    apt-get -y update -qq --fix-missing && \
    apt-get -y install --no-install-recommends \
        python${PYTHON_VERSION} \
        python${PYTHON_VERSION}-dev \
        $( [ ${PYTHON_VERSION%%.*} -ge 3 ] && echo "python${PYTHON_VERSION%%.*}-distutils" ) \
        gnupg2\
        ca-certificates \
        wget \
        unzip \
        cmake \
        ffmpeg \
        libtbb2 \
        gfortran \
        apt-utils \
        pkg-config \
        checkinstall \
        qt5-default \
        build-essential \
        libopenblas-base \
        libopenblas-dev \
        liblapack-dev \
        libatlas-base-dev \
        #libgtk-3-dev \
        #libavcodec58 \
        libavcodec-dev \
        #libavformat58 \
        libavformat-dev \
        libavutil-dev \
        #libswscale5 \
        libswscale-dev \
        libjpeg8-dev \
        libpng-dev \
        libtiff5-dev \
        #libdc1394-22 \
        libdc1394-22-dev \
        libxine2-dev \
        libv4l-dev \
        libgstreamer1.0 \
        libgstreamer1.0-dev \
        libgstreamer-plugins-base1.0-0 \
        libgstreamer-plugins-base1.0-dev \
        libglew-dev \
        libpostproc-dev \
        libeigen3-dev \
        libtbb-dev \
        zlib1g-dev \
        libsm6 \
        libxext6 \
        libxrender1 


# install python dependencies
    # sysctl -w net.ipv4.ip_forward=1 && \
RUN wget https://bootstrap.pypa.io/get-pip.py --progress=bar:force:noscroll && \
    python${PYTHON_VERSION} get-pip.py && \
    rm get-pip.py && \
    pip${PYTHON_VERSION} install \
    numpy==1.19.4 \
    pandas==1.1.5 \
    scikit-learn==0.23.2 \
    matplotlib==3.3.3 \
    seaborn==0.11.1 \
    pyyaml==5.3.1 \
    #h5py==3.1.0\
    tensorflow==2.4.0 \
    keras==2.4.3 \ 
    chainer \
    theano==1.0.5 \
    jupyterlab \
    nltk==3.5

# Opening port for jupyter
EXPOSE 8888


# Tensorflow Current stable release for CPU and GPU and Keras
#RUN pip${PYTHON_VERSION} install tensorflow keras mxnet-cu102 optuna cupy-cuda111 chainer theano 
#cntk-gpu 
# Opening port for Tensorboard
EXPOSE 6006

## install pytoch  
RUN pip${PYTHON_VERSION} install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html 


#Java
#
# Install JDK (Java Development Kit), which includes JRE (Java Runtime
# Environment). Or, if you just want to run Java apps, you can install
# JRE only using: apt install default-jre
RUN apt-get install -y --no-install-recommends default-jdk



# Install OpenCV
RUN wget https://github.com/opencv/opencv/archive/$OPENCV_VERSION.zip -O opencv.zip --progress=bar:force:noscroll && \
    unzip -q opencv.zip && \
    mv /opencv-$OPENCV_VERSION /opencv && \
    rm opencv.zip && \
    wget https://github.com/opencv/opencv_contrib/archive/$OPENCV_VERSION.zip -O opencv_contrib.zip --progress=bar:force:noscroll && \
    unzip -q opencv_contrib.zip && \
    mv /opencv_contrib-$OPENCV_VERSION /opencv_contrib && \
    rm opencv_contrib.zip && \

# Prepare build
    mkdir /opencv/build && \
    cd /opencv/build && \
    cmake \
      -D CMAKE_BUILD_TYPE=RELEASE \
      -D BUILD_PYTHON_SUPPORT=ON \
      -D BUILD_DOCS=ON \
      -D BUILD_PERF_TESTS=OFF \
      -D BUILD_TESTS=OFF \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D OPENCV_EXTRA_MODULES_PATH=/opencv_contrib/modules \
      -D BUILD_opencv_python3=$( [ ${PYTHON_VERSION%%.*} -ge 3 ] && echo "ON" || echo "OFF" ) \
      -D BUILD_opencv_python2=$( [ ${PYTHON_VERSION%%.*} -lt 3 ] && echo "ON" || echo "OFF" ) \
      -D PYTHON${PYTHON_VERSION%%.*}_EXECUTABLE=$(which python${PYTHON_VERSION}) \
      -D PYTHON_DEFAULT_EXECUTABLE=$(which python${PYTHON_VERSION}) \
      -D BUILD_EXAMPLES=OFF \
      -D WITH_IPP=OFF \
      -D WITH_FFMPEG=ON \
      -D WITH_GSTREAMER=ON \
      -D WITH_V4L=ON \
      -D WITH_LIBV4L=ON \
      -D WITH_TBB=ON \
      -D WITH_QT=ON \
      -D WITH_OPENGL=ON \
      -D WITH_CUDA=ON \
      -D WITH_LAPACK=ON \
      #-D WITH_HPX=ON \
      -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
      -D CMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs \
      # https://kezunlin.me/post/6580691f
      # https://stackoverflow.com/questions/28010399/build-opencv-with-cuda-support
      -D CUDA_ARCH_BIN="5.3 6.1 7.0 7.5" \
      -D CUDA_ARCH_PTX="" \
      -D WITH_CUBLAS=ON \
      -D WITH_NVCUVID=ON \
      -D ENABLE_FAST_MATH=1 \
      -D CUDA_FAST_MATH=1 \
      -D ENABLE_PRECOMPILED_HEADERS=OFF \
      .. \
    && \

# Build, Test and Install
    cd /opencv/build && \
    make -j$(nproc) && \
    make install && \
    ldconfig 

################# darknet 
 WORKDIR /app
RUN git clone https://github.com/AlexeyAB/darknet.git
WORKDIR darknet
RUN make OPENCV=1 GPU=1 AVX=1 OPENMP=1 CUDNN=1 CUDNN_HALF=1 OPENMP=1 -j $(nproc)
RUN chmod +x darknet


# cleaning
# RUN   apt-get -y remove \
#         unzip \
#         cmake \
#         gfortran \
#         apt-utils \
#         pkg-config \
#         checkinstall \
#         build-essential \
#         libopenblas-dev \
#         liblapack-dev \
#         libatlas-base-dev \
#         #libgtk-3-dev \
#         libavcodec-dev \
#         libavformat-dev \
#         libavutil-dev \
#         libswscale-dev \
#         libjpeg8-dev \
#         libpng12-dev \
#         libtiff5-dev \
#         libdc1394-22-dev \
#         libxine2-dev \
#         libv4l-dev \
#         libgstreamer1.0-dev \
#         libgstreamer-plugins-base1.0-dev \
#         libglew-dev \
#         libpostproc-dev \
#         libeigen3-dev \
#         libtbb-dev \
#         zlib1g-dev \
#     && \

#    
#     apt-get autoremove -y && \
#        apt-get clean && \
#        rm -rf /var/lib/apt/lists/* /tmp/* ~/* 
       #&& \
#     rm -rf /opencv /opencv_contrib /var/lib/apt/lists/* && \


# Set the default python and install PIP packages
 RUN update-alternatives --install /usr/bin/python${PYTHON_VERSION%%.*} python${PYTHON_VERSION%%.*} /usr/bin/python${PYTHON_VERSION} 1 && \
     update-alternatives --install /usr/bin/python python /usr/bin/python${PYTHON_VERSION} 1 && \

# Call default command.
    ffmpeg -version && \
    #ldd `which ffmpeg` && \
    python --version && \
    python -c "import cv2 ; print(cv2.__version__)"


WORKDIR "/root/"

#ENTRYPOINT ["/bin/bash"]
CMD ["jupyter","notebook","--port=8888","--ip=0.0.0.0","--allow-root","--no-browser"]

参考文献:
https://github.com/ammaryasirnaich/Deeplearning_Playland

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值