Dockerfile_deployment 2.4 KB
Newer Older
T
tripleMu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
FROM nvcr.io/nvidia/pytorch:22.04-py3

WORKDIR /openmmlab
ARG ONNXRUNTIME_VERSION=1.8.1
ENV DEBIAN_FRONTEND=noninteractive \
    APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn \
    FORCE_CUDA="1"

RUN apt-key del 7fa2af80 \
    && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub \
    && apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/7fa2af80.pub

# (Optional)
# RUN sed -i 's/http:\/\/archive.ubuntu.com\/ubuntu\//http:\/\/mirrors.aliyun.com\/ubuntu\//g' /etc/apt/sources.list \
# && pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

RUN apt-get update \
    && apt-get install -y ffmpeg git libgl1-mesa-glx libopencv-dev \
    libsm6 libspdlog-dev libssl-dev ninja-build libxext6 libxrender-dev \
    libglib2.0-0 vim wget --no-install-recommends \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# get onnxruntime
RUN wget -q https://github.com/microsoft/onnxruntime/releases/download/v${ONNXRUNTIME_VERSION}/onnxruntime-linux-x64-${ONNXRUNTIME_VERSION}.tgz \
    && tar -zxvf onnxruntime-linux-x64-${ONNXRUNTIME_VERSION}.tgz \
    && pip install --no-cache-dir onnxruntime-gpu==${ONNXRUNTIME_VERSION} \
    && pip install pycuda


# Install OPENMIM MMENGINE MMCV MMDET
RUN pip install --no-cache-dir openmim \
    && mim install --no-cache-dir "mmengine>=0.3.0" "mmcv>=2.0.0rc1,<2.1.0" "mmdet>=3.0.0rc2,<3.1.0"

# Install MMYOLO
RUN git clone https://github.com/open-mmlab/mmyolo.git -b dev mmyolo \
    && cd mmyolo \
    && mim install --no-cache-dir -e . \
    && cd ..

# Install MMDEPLOY
ENV ONNXRUNTIME_DIR=/openmmlab/onnxruntime-linux-x64-${ONNXRUNTIME_VERSION} \
    TENSORRT_DIR=/usr/lib/x86_64-linux-gnu \
    CUDNN_DIR=/usr/lib/x86_64-linux-gnu \
    BACKUP_LD_LIBRARY_PATH=$LD_LIBRARY_PATH \
    LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$TENSORRT_DIR/lib:$CUDNN_DIR/lib64:$BACKUP_LD_LIBRARY_PATH

RUN git clone https://github.com/open-mmlab/mmdeploy -b dev-1.x mmdeploy \
    && cd mmdeploy \
    && git submodule update --init --recursive \
    && mkdir -p build \
    && cd build \
    && cmake -DMMDEPLOY_TARGET_BACKENDS="ort;trt" -DONNXRUNTIME_DIR=${ONNXRUNTIME_DIR} -DTENSORRT_DIR=${TENSORRT_DIR} -DCUDNN_DIR=${CUDNN_DIR} .. \
    && make -j$(nproc) \
    && make install \
    && cd .. \
    && mim install --no-cache-dir -e .

# Fix undefined symbol bug
RUN echo -e "\nldconfig" > /root/.bashrc