FROM swr.cn-south-1.myhuaweicloud.com/ascendhub/cann:9.0.0-910b-ubuntu22.04-py3.11
WORKDIR /tmp

RUN cp -a /etc/apt/sources.list /etc/apt/sources.list.bak && \
    sed -i "s@http://.*archive.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list && \
    sed -i "s@http://.*security.ubuntu.com@http://mirrors.huaweicloud.com@g" /etc/apt/sources.list
RUN export DEBIAN_FRONTEND=noninteractive && \
    export TZ=Asia/Shanghai && \
    apt update && \
    apt install --no-install-recommends ca-certificates -y && \
    apt install --no-install-recommends wget vim dos2unix net-tools ssh lsof sshpass -y && \
    apt install --no-install-recommends curl gcc cmake g++ make pkg-config unzip autoconf git patch -y && \
    apt install --no-install-recommends zlib1g-dev xz-utils haveged -y && \
    apt install python3-pip -y && \
    apt clean && rm -rf /var/lib/apt/lists/*

RUN mkdir ~/.pip && touch ~/.pip/pip.conf && \
    echo "[global]" > ~/.pip/pip.conf && \
    echo "trusted-host=mirrors.aliyun.com" >> ~/.pip/pip.conf && \
    echo "index-url=http://mirrors.aliyun.com/pypi/simple" >> ~/.pip/pip.conf && \
    echo "timeout=200" >> ~/.pip/pip.conf

RUN pip3 install -U pip && \
    pip3 install decorator && \
    pip3 install sympy==1.4 && \
    pip3 install cffi==1.15.1 && \
    pip3 install pyyaml && \
    pip3 install pathlib2 && \
    pip3 install protobuf && \
    pip3 install scipy && \
    pip3 install requests && \
    pip3 install attrs && \
    pip3 install psutil && \
    pip3 install protobuf==4.25.1 && \
    pip3 install numpy==1.26.4 && \
    rm -rf /root/.cache/pip

WORKDIR /tmp
ARG ASCEND_BASE=/usr/local/Ascend

ARG TOOLKIT_PATH=$ASCEND_BASE/ascend-toolkit/latest

USER root

ENV LD_LIBRARY_PATH=$TOOLKIT_PATH/runtime/lib64:$LD_LIBRARY_PATH
ENV TBE_IMPL_PATH=$TOOLKIT_PATH/opp/op_impl/built-in/ai_core/tbe
ENV PATH=$TOOLKIT_PATH/atc/ccec_compiler/bin:$TOOLKIT_PATH/atc/bin:$PATH
ENV ASCEND_OPP_PATH=$TOOLKIT_PATH/opp
ENV ASCEND_AICPU_PATH=$TOOLKIT_PATH
ENV PYTHONPATH=$TBE_IMPL_PATH:$PYTHONPATH
ENV ASCEND_HOME=${ASCEND_BASE}

RUN ARCH=$(uname -m | sed 's/x86_64/x86_64/; s/aarch64/aarch64/') && \
    wget https://gitcode.com/Ascend/VisionSDK/releases/download/v26.0.0/Ascend-mindxsdk-mxvision_26.0.0_linux-${ARCH}.run && \
    chmod +x Ascend-mindxsdk-mxvision_26.0.0_linux-${ARCH}.run && \
    bash Ascend-mindxsdk-mxvision_26.0.0_linux-${ARCH}.run --install --install-path=/usr/local

RUN sed -i '$a\source /usr/local/Ascend/ascend-toolkit/set_env.sh' ~/.bashrc && \
    sed -i '$a\source /usr/local/mxVision/set_env.sh' ~/.bashrc && \
    sed -i '$a\export LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64/driver:$LD_LIBRARY_PATH' ~/.bashrc

RUN rm -rf ./*
WORKDIR /root