# Start from the NVIDIA official image (ubuntu-24.04 + cuda-12.9 + python-3.12) # https://docs.nvidia.com/deeplearning/frameworks/pytorch-release-notes/rel-25-05.html FROM nvcr.io/nvidia/pytorch:25.05-py3 # Define environments ENV MAX_JOBS=32 ENV VLLM_WORKER_MULTIPROC_METHOD=spawn ENV DEBIAN_FRONTEND=noninteractive ENV NODE_OPTIONS="" ENV PIP_ROOT_USER_ACTION=ignore ENV HF_HUB_ENABLE_HF_TRANSFER="1" # Define installation arguments ARG APT_SOURCE=https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ ARG PIP_INDEX=https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple # Set apt source RUN cp /etc/apt/sources.list /etc/apt/sources.list.bak && \ { \ echo "deb ${APT_SOURCE} jammy main restricted universe multiverse"; \ echo "deb ${APT_SOURCE} jammy-updates main restricted universe multiverse"; \ echo "deb ${APT_SOURCE} jammy-backports main restricted universe multiverse"; \ echo "deb ${APT_SOURCE} jammy-security main restricted universe multiverse"; \ } > /etc/apt/sources.list # Install systemctl RUN apt-get update && \ apt-get install -y -o Dpkg::Options::="--force-confdef" systemd && \ apt-get clean # Install tini RUN apt-get update && \ apt-get install -y tini && \ apt-get clean # Change pip source RUN pip config set global.index-url "${PIP_INDEX}" && \ pip config set global.extra-index-url "${PIP_INDEX}" && \ python -m pip install --upgrade pip # Uninstall nv-pytorch fork RUN pip uninstall -y torch torchvision torchaudio \ pytorch-quantization pytorch-triton torch-tensorrt \ transformer-engine flash-attn apex megatron-core \ xgboost opencv grpcio # Remove nv file RUN rm -rf /workspace # Fix cv2 RUN rm -rf /usr/local/lib/python3.10/dist-packages/cv2 # Install torch-2.8.0+cu128 + vllm-0.11.0 RUN pip install --no-cache-dir "vllm==0.11.0" "torch==2.8.0" "torchvision==0.23.0" "torchaudio==2.8.0" tensordict torchdata \ "transformers[hf_xet]>=4.51.0" accelerate datasets peft hf-transfer \ "numpy<2.0.0" "pyarrow>=15.0.0" "grpcio>=1.62.1" "optree>=0.13.0" pandas \ ray[default] codetiming hydra-core pylatexenc qwen-vl-utils wandb liger-kernel mathruler \ pytest yapf py-spy pre-commit ruff # Install flash-attn-2.8.3 RUN ABI_FLAG=$(python -c "import torch; print('TRUE' if torch._C._GLIBCXX_USE_CXX11_ABI else 'FALSE')") && \ URL="https://github.com/Dao-AILab/flash-attention/releases/download/v2.8.3/flash_attn-2.8.3+cu12torch2.8cxx11abi${ABI_FLAG}-cp312-cp312-linux_x86_64.whl" && \ wget -nv -P /opt/tiger "${URL}" && \ pip install --no-cache-dir "/opt/tiger/$(basename ${URL})" # Reset pip config RUN pip config unset global.index-url && \ pip config unset global.extra-index-url