Sign inSign up

hienanh/emoi

By hienanh

•Updated about 1 year ago

Image
0

54

hienanh/emoi repository overview

⁠Install Nvidia-container-toolkit

https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit⁠

⁠Build Image

docker build --tag hienanh/emoi:py3.11-torch2.5.0-cuda12.4-cudnn8-runtime .

⁠Run container

xhost +local:root
docker run -it --rm --net=host --runtime nvidia --name nvidia-env --gpus all -v /tmp/.X11-unix/:/tmp/.X11-unix -e DISPLAY=$DISPLAY hienanh/emoi:py3.11-torch2.5.0-cuda12.4-cudnn8-runtime

⁠dockerfile

⁠py3.11-torch2.5.0-cuda12.4-cudnn8-runtime

Click to expand
FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04
ENV DEBIAN_FRONTEND=noninteractive

# Install NVIDIA Video Codec SDK
ENV EDITOR=/bin/nano
ENV SHELL=/bin/bash
ENV PATH=/usr/local/cuda/bin:${PATH}
ENV LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib64/stubs:/usr/local/TensorRT/lib:/usr/local/lib:/usr:/usr/lib/x86_64-linux-gnu:${LD_LIBRARY_PATH}
# Reference: https://gitlab.com/nvidia/container-images/video-codec-sdk/-/blob/master/ubuntu18.04/Dockerfile?ref_type=heads#L10
ENV LIBRARY_PATH=/usr/local/cuda/lib64/stubs${LIBRARY_PATH:+:${LIBRARY_PATH}}
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics,video,display
WORKDIR /root

#  Íntall python packages
RUN apt update && apt upgrade -y && apt install --assume-yes software-properties-common && add-apt-repository ppa:deadsnakes/ppa && \
    apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev gstreamer1.0-plugins-base \
        gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools \
        gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio && \
    apt update && apt install --assume-yes python3.11 python3.11-dev python3-pip && \
    apt install --assume-yes git tmux tree wget unzip htop cmake unzip nano g++ vim clinfo && \
    pip3 install -U setuptools && pip3 install setuptools && pip3 install cython && \
    apt-get install libeigen3-dev -y && \
    cd /usr/bin && ln -sf python3.11 python3 && ln -sf python3 python && ln -sf pip3 pip

# Install TensorRT
RUN cd /root && wget http://192.168.0.146:8003/0.gz -O TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz && \
    tar xvzf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz && \
    mv TensorRT-8.6.1.6 /usr/local/ && cd /usr/local/ && ln -sf TensorRT-8.6.1.6 TensorRT && \
    cd /root && rm -rf TensorRT-8.6.1.6.Linux.x86_64-gnu.cuda-12.0.tar.gz

# Install Boost v1.87.0
WORKDIR /root
RUN wget https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.gz -O /root/boost_1_87_0.tar.gz && \
    apt update && apt install --assume-yes build-essential autotools-dev libicu-dev build-essential libbz2-dev libboost-all-dev && \
    tar -xvzf boost_1_87_0.tar.gz && \
    cd /root/boost_1_87_0 && \
    rm -rf /usr/lib/cmake/[Bb]oost* && \
    ./bootstrap.sh --prefix=/usr --with-python=python3 && \
    ./b2 stage -j$(nproc) threading=multi link=shared && \
    ./b2 install threading=multi link=shared && \
    cd /root && \
    rm -rf /root/boost_1_87_0 && \
    rm -rf /root/boost_1_87_0.tar.gz && \
    rm -rf /var/lib/apt/lists/*

# Install Gstreamer RTSP plugin and OpenSSL
RUN apt update && \
    apt install gstreamer1.0-rtsp libgstrtspserver-1.0-dev libnice-dev autoconf libtool libreadline-dev libjsoncpp-dev net-tools libssl1*  -y

# make a copy of this cause it gets purged...
RUN mkdir -p /usr/local/include/gstreamer-1.0/gst && \
    cp -r /usr/include/gstreamer-1.0/gst/webrtc /usr/local/include/gstreamer-1.0/gst && \
    ls -ll /usr/local/include/ && \
    ls -ll /usr/local/include/gstreamer-1.0/gst/webrtc

# install curlpp
WORKDIR /root
RUN apt update && apt install --assume-yes libcurl4-openssl-dev && \
    git clone https://github.com/jpbarrette/curlpp.git && \
    mkdir -p curlpp/build && \
    cd curlpp/build && \
    cd /root/curlpp/build && \
    cmake .. && \
    make -j$(nproc) && \
    make install && \
    cd /root && \
    rm -rf /root/curlpp && \
    rm -rf /var/lib/apt/lists/*

# Install OpenCV
RUN apt purge '*opencv*' -y && \
    apt update && apt upgrade -y && \
    apt install build-essential pkg-config yasm checkinstall libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev \
        libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libxvidcore-dev x264 libx264-dev libfaac-dev \
        libfaac-dev libmp3lame-dev libvorbis-dev libopencore-amrnb-dev libopencore-amrwb-dev ffmpeg \
        libxine2-dev libv4l-dev v4l-utils libgtk-3-dev python3-dev python3-pip libtbb-dev libatlas-base-dev gfortran libprotobuf-dev \
        protobuf-compiler libgoogle-glog-dev libgflags-dev libgphoto2-dev libeigen3-dev libhdf5-dev doxygen -y && \
        pip3 install -U pip numpy protobuf==3.17 && cd /usr/include/linux && ln -s -f ../libv4l1-videodev.h videodev.h && \
        rm -rf /var/lib/apt/lists/*

ARG OPENCV_VERSION="4.11.0"
# ARG OPENCV_VERSION="4.5.5"
# architecture-specific build options
ARG CUDA_ARCH_BIN="5.3,6.2,7.2,7.5,8.0,8.6,8.7"
ARG CUDA_ARCH_PTX="5.3,6.2,7.2,7.5,8.0,8.6,8.7"
ARG ENABLE_NEON="OFF"

# V4.11.0
RUN cd /root && \
    wget http://192.168.0.146:8003/5.zip -O opencv_contrib-${OPENCV_VERSION}.zip && \
    wget http://192.168.0.146:8003/L.zip -O opencv-${OPENCV_VERSION}.zip && \
    unzip opencv-${OPENCV_VERSION}.zip && unzip opencv_contrib-${OPENCV_VERSION}.zip && \
    mkdir -p /root/opencv-${OPENCV_VERSION}/build && cd /root/opencv-${OPENCV_VERSION}/build && \
    cd /root/opencv-${OPENCV_VERSION}/build && \
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_LIBRARY_PATH=/usr/local/cuda/lib64/stubs -D CPACK_BINARY_DEB=OFF -D CMAKE_C_COMPILER=/usr/bin/gcc \
        -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=OFF -D INSTALL_PYTHON_EXAMPLES=OFF -D BUILD_EXAMPLES=OFF -D BUILD_opencv_python2=OFF \
        -D WITH_CUDA=ON -D WITH_CUDNN=ON -D OPENCV_DNN_CUDA=ON -D BUILD_opencv_cudacodec=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON -D WITH_CUBLAS=ON \
        -D WITH_GSTREAMER=ON -D WITH_V4L=ON -D WITH_LIBV4L=ON -D WITH_OPENGL=ON -D WITH_OPENCL=OFF -D WITH_EIGEN=OFF -D ENABLE_NEON=${ENABLE_NEON} \
        -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_PC_FILE_NAME=opencv.pc -D OPENCV_ENABLE_NONFREE=ON -D BUILD_SHARED_LIBS=ON -D WITH_FFMPEG=ON -D WITH_IPP=OFF \
        -D WITH_TBB=ON -D BUILD_TIFF=ON -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D OPENCV_EXTRA_MODULES_PATH=/root/opencv_contrib-${OPENCV_VERSION}/modules .. && \
    make -j$(nproc) && make install && ldconfig && pkg-config --modversion opencv && cd /root && \
    rm -rf /root/opencv* && rm -rf /var/lib/apt/lists/*

RUN apt update && \
    apt-get install -y --no-install-recommends dialog libglew-dev glew-utils gstreamer1.0-nice libgstrtspserver-1.0-dev libglib2.0-dev libsoup2.4-dev \
        libjson-glib-dev mesa-utils lsb-release && \
    rm -rf /var/lib/apt/lists/*

# Install licensepp
RUN cd /root && git clone https://github.com/datlt4/licensepp-openssl-flask.git && \
    cd /root/licensepp-openssl-flask/3rdparty/cryptopp && make -j$(nproc) && make install && \
    cd /root/licensepp-openssl-flask/3rdparty/licensepp && mkdir -p build && \
    cd /root/licensepp-openssl-flask/3rdparty/licensepp/build && cmake .. && make -j$(nproc) && make install && \
    cd /root/licensepp-openssl-flask/3rdparty/ripe && mkdir -p build && \
    cd /root/licensepp-openssl-flask/3rdparty/ripe/build && cmake .. && make -j$(nproc) && make install && \
    cd /root && rm -rf licensepp-openssl-flask && \
    rm -rf /var/lib/apt/lists/*

# Install g++-9
RUN apt update && \
    apt autoremove -y && \
    apt install gcc-9 g++-9 -y && \
    cd /usr/bin && \
    ln -sf x86_64-linux-gnu-g++-9 g++ && \
    ln -sf x86_64-linux-gnu-gcc-9 gcc && \
    rm -rf /var/lib/apt/lists/*

# Install youtube-dl
RUN apt update && \
    apt install youtube-dl -y && \
    rm -rf /var/lib/apt/lists/*

# Install Cmake 3.30.0
RUN cd /root && wget https://github.com/Kitware/CMake/releases/download/v3.30.0/cmake-3.30.0-linux-x86_64.tar.gz && \
    tar xvzf cmake-3.30.0-linux-x86_64.tar.gz && \
    rm -rf cmake-3.30.0-linux-x86_64.tar.gz && \
    cd /usr/bin && ln -sf /root/cmake-3.30.0-linux-x86_64/bin/cmake cmake

# Install xtensor
RUN cd /root && \
    git clone https://github.com/xtensor-stack/xtl && \
    git clone https://github.com/xtensor-stack/xtensor.git && \
    git clone https://github.com/xtensor-stack/xtensor-blas.git && \
    mkdir -p /root/xtl/build && \
    mkdir -p /root/xtensor/build && \
    mkdir -p /root/xtensor-blas/build && \
    cd /root/xtl/build && \
    cmake .. && \
    make -j$(nproc) && \
    make install && \
    cd /root/xtensor/build && \
    cmake .. && \
    make -j$(nproc) && \
    make install && \
    cd /root/xtensor-blas/build && \
    cmake .. && \
    make -j$(nproc) && \
    make install && \
    cd /root && \
    rm -rf xtl xtensor xtensor-blas

# Install taskflow
RUN cd /root && git clone https://github.com/taskflow/taskflow.git && mkdir taskflow/build && cd taskflow/build && cmake .. && make -j$(nproc) && make install && \
    cd /root && rm -rf taskflow

# Install nanomsg
RUN cd /root && git clone https://github.com/nanomsg/nng.git && \
    cd /root/nng && mkdir build && cd build && \
    cmake .. && make -j$(nproc) && make install && \
    cd /root && rm -rf nng

RUN apt update && apt install curl fzf xclip -y && \
    echo "export PS1='\[\[\033[01;44m\]NVIDIA CONTAINER\[\033[00m\]:\[\033[01;32m\]\W \[\033[01;36m\]➜ \[\033[00m\]'" >> /root/.bashrc && \
    echo "alias b=\"cd build\"" >> /root/.bashrc && \
    echo "alias .-=\"cd -\"" >> /root/.bashrc && \
    echo "alias ..=\"cd ../\"" >> /root/.bashrc && \
    echo "alias ...=\"cd ../../\"" >> /root/.bashrc && \
    echo "alias ....=\"cd ../../../\"" >> /root/.bashrc && \
    echo "alias ll=\"ls -hlt\"" >> /root/.bashrc && \
    echo "alias hc=\"cat ~/.bash_history -n | cut -c 8- | sort | uniq | fzf | tr -d '\\n' | DISPLAY=:0 xclip -selection c\"" >> /root/.bashrc && \
    echo "alias h=\"cat ~/.bash_history -n | cut -c 8- | sort | uniq | fzf\"" >> /root/.bashrc && \
    echo "alias H=\"cat ~/.bash_history -n | cut -c 8- | sort | uniq | fzf\"" >> /root/.bashrc && \
    echo "alias rr=\"readlink -f\"" >> /root/.bashrc && \
    echo "alias rrc=\"readlink -f * | sort | uniq | fzf | tr -d '\\n' | DISPLAY=:0 xclip -selection c\"" >> /root/.bashrc && \
    echo "alias pwdc=\"pwd | tr -d '\\n' | DISPLAY=:0 xclip -selection c\"" >> /root/.bashrc && \
    rm -rf /var/lib/apt/lists/*

# Install Oatpp
RUN cd /root && git clone --depth=1 https://github.com/oatpp/oatpp && mkdir /root/oatpp/build && cd /root/oatpp/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp  && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-swagger && mkdir /root/oatpp-swagger/build && cd /root/oatpp-swagger/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-swagger && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-xml && mkdir /root/oatpp-xml/build && cd /root/oatpp-xml/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-xml && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-bob && mkdir /root/oatpp-bob/build && cd /root/oatpp-bob/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-bob && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-sqlite && mkdir /root/oatpp-sqlite/build && cd /root/oatpp-sqlite/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-sqlite  && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-openssl && mkdir /root/oatpp-openssl/build && cd /root/oatpp-openssl/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-openssl && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-zlib && mkdir /root/oatpp-zlib/build && cd /root/oatpp-zlib/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-zlib && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-websocket && mkdir /root/oatpp-websocket/build && cd /root/oatpp-websocket/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-websocket && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-curl && mkdir /root/oatpp-curl/build && cd /root/oatpp-curl/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-curl && \
    cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-consul && mkdir /root/oatpp-consul/build && cd /root/oatpp-consul/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-consul && \
    rm -rf /var/lib/apt/lists/*
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-mcp && mkdir /root/oatpp-mcp/build && cd /root/oatpp-mcp/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-mcp && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-postgresql && mkdir /root/oatpp-postgresql/build && cd /root/oatpp-postgresql/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-postgresql && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-libressl && mkdir /root/oatpp-libressl/build && cd /root/oatpp-libressl/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-libressl && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-starter-async && mkdir /root/oatpp-starter-async/build && cd /root/oatpp-starter-async/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-starter-async && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-starter && mkdir /root/oatpp-starter/build && cd /root/oatpp-starter/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-starter && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-starter-module && mkdir /root/oatpp-starter-module/build && cd /root/oatpp-starter-module/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-starter-module && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-mongo && mkdir /root/oatpp-mongo/build && cd /root/oatpp-mongo/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-mongo && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-wolfssl && mkdir /root/oatpp-wolfssl/build && cd /root/oatpp-wolfssl/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-wolfssl && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-protobuf && mkdir /root/oatpp-protobuf/build && cd /root/oatpp-protobuf/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-protobuf && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-mbedtls && mkdir /root/oatpp-mbedtls/build && cd /root/oatpp-mbedtls/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-mbedtls && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-ssdp && mkdir /root/oatpp-ssdp/build && cd /root/oatpp-ssdp/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-ssdp && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-nixos-feed && mkdir /root/oatpp-nixos-feed/build && cd /root/oatpp-nixos-feed/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-nixos-feed && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-examples && mkdir /root/oatpp-examples/build && cd /root/oatpp-examples/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-examples && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-openwrt-feed && mkdir /root/oatpp-openwrt-feed/build && cd /root/oatpp-openwrt-feed/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-openwrt-feed && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-xcompile && mkdir /root/oatpp-xcompile/build && cd /root/oatpp-xcompile/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-xcompile && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-dtoql && mkdir /root/oatpp-dtoql/build && cd /root/oatpp-dtoql/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-dtoql && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-boringssl && mkdir /root/oatpp-boringssl/build && cd /root/oatpp-boringssl/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-boringssl && \
    # cd /root && git clone --depth=1 https://github.com/oatpp/oatpp-kafka && mkdir /root/oatpp-kafka/build && cd /root/oatpp-kafka/build && cmake -DCMAKE_BUILD_TYPE=Debug -DOATPP_BUILD_TESTS=OFF -DOATPP_SQLITE_AMALGAMATION=ON .. && make -j$(nproc) && make install && cd /root && rm -rf oatpp-kafka && \

# Install pybind11
RUN python3 -m pip install pytest numpy && cd /root && git clone https://github.com/pybind/pybind11.git && \
    mkdir pybind11/build && cd /root/pybind11/build && cmake .. && make check -j$(nproc) && make install && \
    cd /root && rm -rf pybind11

# Install necessary system dependencies and tools
RUN python3 -m pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu121 && \
    python3 -m pip install -U scikit-learn && \
    python3 -m pip install matplotlib kornia albumentations pandas pyproj folium ipdb pudb tqdm && \
    python3 -m pip install onnx onnxruntime tensorrt==8.6.1 pycuda && \
    wget https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.5.0%2Bcu121.zip && \
    unzip libtorch-cxx11-abi-shared-with-deps-2.5.0+cu121.zip -d /usr/local/ && \
    rm -rf libtorch-cxx11-abi-shared-with-deps-2.5.0+cu121.zip && \
    rm -rf /var/lib/apt/lists/*

ENV LIB_TORCH="/usr/local/libtorch"

WORKDIR /root
# Install Cmake from source
RUN cd / && git clone --recurse-submodules https://github.com/Kitware/CMake.git && \
    cd CMake && ./bootstrap --system-curl --parallel=$(nproc) && \
    make -j$(nproc) && make install && \
    cd / && rm -rf CMake*

# # Protobuf C++ Runtime
# # Protobuf Python Runtime
# ARG GPRC_VERSION=1.46.6
# ARG OPENSSL_VERSION="1.1.1s"
# ARG PROTOBUF_VERSION=21.12

# RUN apt update && \
#     apt install -y --no-install-recommends build-essential software-properties-common autoconf automake libtool pkg-config ca-certificates wget git curl vim gdb zlib1g-dev valgrind libcurl4-openssl-dev nano && \
#     cd /root && apt install -y autoconf automake libtool curl make g++ unzip && \
#     wget https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOBUF_VERSION}/protobuf-all-${PROTOBUF_VERSION}.tar.gz && \
#     tar xvzf protobuf-all-${PROTOBUF_VERSION}.tar.gz && rm -rf protobuf-all-${PROTOBUF_VERSION}.tar.gz && \
#     cd /root/protobuf-${PROTOBUF_VERSION} && ./configure && make -j$(nproc) && make check -j$(nproc) && make install -j$(nproc) && ldconfig && \
#     python3 -m pip install --upgrade pip setuptools wheel cython coverage && \
#     cd /root/protobuf-${PROTOBUF_VERSION}/python && python setup.py build && python setup.py test && python setup.py install && python -m pip install . && \
#     cd /root && rm -rf /root/protobuf-${PROTOBUF_VERSION} && apt clean && rm -rf /var/lib/apt/lists/*

# # gRPC C++ Runtime
# # gRPC Python Runtime
# # https://github.com/grpc/grpc/tree/master/src/cpp
# # https://github.com/grpc/grpc/blob/master/BUILDING.md
# RUN cd /root && apt update && apt-get install -y build-essential autoconf libtool pkg-config && \
#     git clone --recurse-submodules -b v${GPRC_VERSION} https://github.com/grpc/grpc && \
#     cd /root/grpc && mkdir -p /root/grpc/cmake/build && cd /root/grpc/cmake/build && \
#     cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR ../.. && \
#     make -j$(nproc) && make install && \
#     cd /root/grpc/ && GRPC_PYTHON_BUILD_WITH_CYTHON=1 GRPC_BUILD_WITH_BORING_SSL_ASM=0 python3 -m pip install . && \
#     apt clean && rm -rf /var/lib/apt/lists/*
#     #GRPC_PYTHON_BUILD_WITH_CYTHON=1 GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 GRPC_BUILD_WITH_BORING_SSL_ASM=0 python3 -m pip install .

# docker build . -t hienanh/emoi:py3.11-torch2.5.0-cuda12.4-cudnn8-runtime
# docker_nvidia --rm --name emoi_dev hienanh/emoi:py3.11-torch2.5.0-cuda12.4-cudnn9-runtime
# docker exec -it emoi_dev bash
# xhost +local:root

Tag summary

Content type

Image

Digest

sha256:7541fbe69…

Size

18.8 GB

Last updated

about 1 year ago

docker pull hienanh/emoi:py3.11-torch2.5.0-cuda12.4-cudnn8-runtime