ARG VLLM_ASCEND_IMAGE=quay.io/atlas-ci/vllm-ascend ARG VLLM_ASCEND_VERSION=v0.29.0 ARG VLLM_ASCEND_DEVICE_SUFFIX= FROM ${VLLM_ASCEND_IMAGE}:${VLLM_ASCEND_VERSION}${VLLM_ASCEND_DEVICE_SUFFIX} ARG APP_DIR=/vllm-workspace/vllm-omni WORKDIR ${APP_DIR} RUN sed -i "s@^\(deb.*\)https\?://[a-z0-9.-]*\.ubuntu\.com@\1http://cache-service.nginx-pypi-cache.svc.cluster.local:8081@g" /etc/apt/sources.list RUN apt-get update && \ apt-get install -y --no-install-recommends \ ffmpeg \ libgl1 \ libglib2.0-0 \ libgomp1 \ libsm6 \ libxext6 \ libxrender1 \ libxcb1 \ espeak-ng && \ rm -rf /var/cache/apt/* && \ rm -rf /var/lib/apt/lists/* RUN python3 -m pip install -U pip && \ python3 -m pip install -v \ "mindiesd==3.1.0" \ "pytest>=7.0.0" \ "pytest-asyncio>=0.21.0" \ "pytest-cov>=4.0.0" \ "pytest-mock>=3.10.0" \ "openpyxl>=3.0.0" \ "psutil>=7.2.0" \ "soundfile>=0.13.1" \ "pyttsx3>=2.99" \ "opencc==1.4.1" \ "opencv-python>=4.12.0.88" \ "imageio[ffmpeg]>=0.6.0" \ "jiwer>=3.0.0" \ "zhon>=2.0.0" \ "zhconv>=1.4.2" \ "funasr>=1.0.0" \ "hyperpyyaml>=1.2.0" \ "onnx>=1.16.0" \ "librosa>=0.10.0" \ "datasets>=3.0.0" \ "torchmetrics==1.9.0" \ --index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple \ --trusted-host cache-service.nginx-pypi-cache.svc.cluster.local \ --default-timeout=60 COPY . . RUN source /usr/local/Ascend/ascend-toolkit/set_env.sh && \ source /usr/local/Ascend/nnal/atb/set_env.sh && \ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/ascend-toolkit/latest/`uname -i`-linux/devlib && \ python3 -m pip install -v -e /vllm-workspace/vllm-omni/ --no-build-isolation \ --index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple \ --trusted-host cache-service.nginx-pypi-cache.svc.cluster.local \ --default-timeout=60 # MiniCPM-o 4.5 Stage-2 vocoder assets: s3tokenizer plus flashcosyvoice, which # is shipped by step-audio2. --no-deps keeps pip from replacing the Ascend torch # build and from shadowing onnxruntime-cann with the vanilla onnxruntime wheel; # the deps these two actually need are installed above. RUN python3 -m pip install -v --no-deps \ "s3tokenizer>=0.3.0" \ "step-audio2>=1.0.0" \ --index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple \ --trusted-host cache-service.nginx-pypi-cache.svc.cluster.local \ --default-timeout=60 ENV VLLM_TARGET_DEVICE=npu ENV VLLM_WORKER_MULTIPROC_METHOD=spawn ENTRYPOINT []