|
1 | | -FROM python:3.10 |
| 1 | +FROM nvidia/cuda:12.3.1-devel-ubuntu20.04 |
2 | 2 |
|
3 | | -RUN apt-get update && apt install git -y --no-install-recommends |
| 3 | +# Non-interactive apt-get commands |
| 4 | +ARG DEBIAN_FRONTEND=noninteractive |
4 | 5 |
|
5 | | -COPY . /app |
| 6 | +# No GPUs visible during build |
| 7 | +ARG CUDA_VISIBLE_DEVICES=none |
6 | 8 |
|
7 | | -WORKDIR /app |
| 9 | +# Specify CUDA architectures -> 7.5: RTX 6000 & T4, 8.0: A100, 8.6+PTX |
| 10 | +ARG TORCH_CUDA_ARCH_LIST="7.5;8.0;8.6+PTX" |
| 11 | + |
| 12 | +# Set the Python version |
| 13 | +ARG PYTHON_VERSION=3.10.12 |
| 14 | + |
| 15 | +# Install system dependencies |
| 16 | +RUN apt-get update && apt-get install -y \ |
| 17 | + wget build-essential libssl-dev zlib1g-dev libbz2-dev \ |
| 18 | + libreadline-dev libsqlite3-dev libffi-dev libncursesw5-dev \ |
| 19 | + xz-utils tk-dev libxml2-dev libxmlsec1-dev liblzma-dev git vim \ |
| 20 | + && rm -rf /var/lib/apt/lists/* |
| 21 | + |
| 22 | +# Install Python |
| 23 | +RUN wget https://www.python.org/ftp/python/$PYTHON_VERSION/Python-$PYTHON_VERSION.tgz && \ |
| 24 | + tar -xzf Python-$PYTHON_VERSION.tgz && \ |
| 25 | + cd Python-$PYTHON_VERSION && \ |
| 26 | + ./configure --enable-optimizations && \ |
| 27 | + make -j$(nproc) && \ |
| 28 | + make altinstall && \ |
| 29 | + cd .. && \ |
| 30 | + rm -rf Python-$PYTHON_VERSION.tgz Python-$PYTHON_VERSION |
| 31 | + |
| 32 | +# Install pip and core Python tools |
| 33 | +RUN wget https://bootstrap.pypa.io/get-pip.py && \ |
| 34 | + python3.10 get-pip.py && \ |
| 35 | + rm get-pip.py && \ |
| 36 | + python3.10 -m pip install --upgrade pip setuptools wheel uv |
| 37 | + |
| 38 | +# Set up project |
| 39 | +WORKDIR /vec-inf |
| 40 | +COPY . /vec-inf |
| 41 | + |
| 42 | +# Install project dependencies with build requirements |
| 43 | +RUN PIP_INDEX_URL="https://download.pytorch.org/whl/cu121" uv pip install --system -e .[dev] |
| 44 | +# Install Flash Attention |
| 45 | +RUN python3.10 -m pip install flash-attn --no-build-isolation |
| 46 | + |
| 47 | +# Final configuration |
| 48 | +RUN mkdir -p /vec-inf/nccl && \ |
| 49 | + mv /root/.config/vllm/nccl/cu12/libnccl.so.2.18.1 /vec-inf/nccl/libnccl.so.2.18.1 |
| 50 | + |
| 51 | +# Set the default command to start an interactive shell |
| 52 | +CMD ["bash"] |
0 commit comments