FROM harbor-contest.4pd.io/luopingyi/bi100/vllm:0.6.3


ENV PYTHONPATH=/usr/local/corex/lib64/python3/dist-packages
ENV LD_LIBRARY_PATH=/usr/local/corex/lib64:/usr/local/openmpi/lib
ENV PATH=/usr/local/corex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/corex/lib64/python3/dist-packages/bin:/usr/local/openmpi/bin
ENV JAVA_HOME=/root/apps/jdk1.8.0_411
ENV JRE_HOME=/root/apps/jdk1.8.0_411/jre
ENV JMETER_HOME=/root/apps/apache-jmeter-5.6.3
ENV CLASSPATH=.:/root/apps/jdk1.8.0_411/lib/dt.jar:/root/apps/jdk1.8.0_411/lib/tools.jar:/root/apps/apache-jmeter-5.6.3/lib/ext/ApacheJMeter_core.jar:/root/apps/apache-jmeter-5.6.3/lib/jorphan.jar:/root/apps/apache-jmeter-5.6.3/lib/logkit-2.0.jar:
ENV PATH=/root/apps/apache-jmeter-5.6.3/bin:/root/apps/jdk1.8.0_411/bin:/usr/local/corex/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/corex/lib64/python3/dist-packages/bin:/usr/local/openmpi/bin
ENV PYTHONUNBUFFERED=1
ENV VLLM_LOAD_PROGRESS_INTERVAL_SECONDS=60
ENV VLLM_LOAD_PROGRESS_TENSOR_INTERVAL=50


COPY fix_tokenizer.py /opt/
COPY detect_tokenizer.py /opt/
COPY detect_head_size.py /opt/
COPY patch_ops.py /opt/
COPY patch_vllm_load_progress.py /opt/
COPY patched_ops /opt/patched_ops/
COPY entrypoint.sh /opt/

# 在构建时执行 patch_ops（只需要执行一次）
RUN python3 /opt/patch_ops.py && \
    python3 /opt/patch_vllm_load_progress.py && \
    python3 -m py_compile \
      /usr/local/corex/lib64/python3/dist-packages/vllm/model_executor/model_loader/loader.py \
      /usr/local/corex/lib64/python3/dist-packages/vllm/model_executor/model_loader/weight_utils.py && \
    chmod +x /opt/entrypoint.sh
