Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
8543a61
Add sync worker to detect changes and merge with fork
Zhuul Apr 23, 2025
fe88462
Merge pull request #1 from Zhuul/add-sync-worker
Zhuul Apr 23, 2025
1b6563f
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 23, 2025
a5817be
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 24, 2025
35558b2
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 25, 2025
80f3d61
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 26, 2025
bf0272d
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 27, 2025
ee6a510
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 28, 2025
c451ce7
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 29, 2025
140da88
Merge remote-tracking branch 'upstream/main'
github-actions[bot] Apr 30, 2025
1d76899
Add improved error handling and retry mechanism
Zhuul May 6, 2025
a6407db
Merge branch 'vllm-project:main' into main
Zhuul May 6, 2025
0f29a43
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 7, 2025
beef967
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 8, 2025
c47d363
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 9, 2025
f33b888
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 10, 2025
be139dd
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 11, 2025
019e834
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 12, 2025
deda756
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 13, 2025
8458f5e
Update LICENSE
Zhuul May 13, 2025
61192e6
Merge remote-tracking branch 'upstream/main'
github-actions[bot] May 13, 2025
e82b373
Create test_vllm.py
Zhuul May 14, 2025
c513e85
Revert "Update LICENSE"
Zhuul May 14, 2025
4ffea43
Update sync_with_upstream.yml
Zhuul Jul 28, 2025
8221a4d
Update sync_with_upstream.yml
Zhuul Jul 28, 2025
4ba01a2
Merge branch 'vllm-project:main' into main
Zhuul Jul 28, 2025
4b16052
[Enhancement] Add run-vllm-dev.ps1 script for launching vLLM developm…
Zhuul Jul 28, 2025
ce1ca96
Add troubleshooting and setup scripts for WSL2 + Podman + GPU
Zhuul Aug 8, 2025
982a0d2
Update sync_with_upstream.yml
Zhuul Aug 8, 2025
1a79898
quick fix
Zhuul Aug 8, 2025
2b84d21
Merge branch 'vllm-project:main' into main
Zhuul Aug 8, 2025
670a06d
Merge branch 'main' of https://github.com/Zhuul/vllm
Zhuul Aug 8, 2025
31d2d18
Update sync_with_upstream.yml
Zhuul Aug 13, 2025
9de7e16
feat: Add RTX 5090 (sm_120) support and container optimizations
Zhuul Aug 13, 2025
d1db810
build: add ENABLE_MACHETE option + fix arch list duplication for sm_1…
Zhuul Aug 13, 2025
004c22d
chore(extras): keep all dev-container and helper changes in extras/ o…
Zhuul Aug 14, 2025
1560347
chore(sync): restore repo to upstream/main except extras/; revert loc…
Zhuul Aug 14, 2025
da32b3b
feat: Add enhanced Podman scripts for vLLM development with GPU support
Zhuul Aug 14, 2025
95a3dcb
chore: restore .buildkite/run-multi-node-test.sh to upstream/main
Zhuul Aug 14, 2025
b477863
ci: use GITHUB_TOKEN in sync_with_upstream workflow and set permissions
Zhuul Aug 14, 2025
899799e
ci: revert sync_with_upstream to GH_PAT-based auth
Zhuul Aug 14, 2025
dacb7c0
ci: trigger sync_with_upstream workflow
Zhuul Aug 14, 2025
ba5f570
Merge remote-tracking branch 'upstream/main'
Zhuul Aug 14, 2025
2f61bd9
Delete extras/CONTAINER_SETUP_COMPLETE.md
Zhuul Aug 14, 2025
059bd49
extras: CUDA 12.9 dev container w/ cu129 nightly; enable sm_120; add …
Zhuul Aug 14, 2025
a3507b1
enhance Dockerfile and setup scripts for improved build performance a…
Zhuul Aug 14, 2025
05f8feb
refactor: streamline Dockerfile dependencies and enhance run script w…
Zhuul Aug 14, 2025
91aac9f
Merge branch 'main' of https://github.com/Zhuul/vllm
Zhuul Aug 14, 2025
334f5ee
Update sync_with_upstream.yml
Zhuul Aug 14, 2025
d4a7d41
enhance: add NCCL support and improve dev setup scripts for better GP…
Zhuul Aug 14, 2025
2c7a70b
Merge branch 'main' of https://github.com/Zhuul/vllm
Zhuul Aug 14, 2025
9ae0e5d
enhance: add rsync to Dockerfile dependencies and improve dev setup s…
Zhuul Aug 14, 2025
d7e0b0e
enhance: add progress display option for dev setup scripts and update…
Zhuul Aug 14, 2025
a261e7f
enhance: make progress watcher fully opt-in, disabling auto-enable on…
Zhuul Aug 14, 2025
ee74860
enhance: add initial empty files for various scripts and documentatio…
Zhuul Aug 14, 2025
5839c61
enhance: add WorkVolume and WorkDirHost parameters to dev launcher sc…
Zhuul Aug 16, 2025
2df711b
cleanup: remove deprecated test scripts to streamline the codebase
Zhuul Aug 16, 2025
4f67b52
feat: Introduce Podman support and deprecate legacy scripts
Zhuul Aug 16, 2025
7978e52
Merge branch 'vllm-project:main' into main
Zhuul Aug 16, 2025
66d45f7
Merge branch 'vllm-project:main' into main
Zhuul Aug 16, 2025
e152b58
Merge branch 'vllm-project:main' into main
Zhuul Aug 19, 2025
a79e209
Merge remote-tracking branch 'upstream/main'
Zhuul Aug 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ci-trigger-20250814-1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
trigger: sync_with_upstream
80 changes: 80 additions & 0 deletions .github/workflows/sync_with_upstream.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: Sync with Upstream

on:
schedule:
- cron: '0 0 * * *' # Runs daily at midnight
push:
branches:
- main

jobs:
sync:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Git
run: |
git config --global user.name 'Zhuul'
git config --global user.email '[email protected]'

- name: Add upstream remote
run: git remote add upstream https://github.com/vllm-project/vllm.git

- name: Fetch upstream changes
run: git fetch upstream

- name: Merge upstream changes
id: merge
run: |
git checkout main
git merge upstream/main || {
echo "Merge conflict detected. Creating a new branch for manual resolution."
git checkout -b "merge-conflict-$(date +%Y%m%d%H%M%S)"
git push origin HEAD
echo "conflict=true" >> "$GITHUB_OUTPUT"
exit 1
}
echo "conflict=false" >> "$GITHUB_OUTPUT"

- name: Check for workflow file changes
id: workflow_change
run: |
if git diff --name-only upstream/main | grep '^.github/workflows/'; then
echo "workflow_changed=true" >> "$GITHUB_OUTPUT"
else
echo "workflow_changed=false" >> "$GITHUB_OUTPUT"
fi

- name: Set up PAT authentication
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
git remote set-url origin "https://Zhuul:${GH_PAT}@github.com/Zhuul/vllm.git"

- name: Push changes if no workflow files changed
if: steps.workflow_change.outputs.workflow_changed == 'false' && steps.merge.outputs.conflict == 'false'
run: git push origin main

- name: Create Pull Request for workflow file changes
if: steps.workflow_change.outputs.workflow_changed == 'true' && steps.merge.outputs.conflict == 'false'
uses: peter-evans/create-pull-request@v6

Check warning on line 65 in .github/workflows/sync_with_upstream.yml

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

.github/workflows/sync_with_upstream.yml#L65

An action sourced from a third-party repository on GitHub is not pinned to a full length commit SHA. Pinning an action to a full length commit SHA is currently the only way to use an action as an immutable release.
with:
token: ${{ secrets.GH_PAT }}
commit-message: "Sync with upstream: update workflow files"
title: "Sync with upstream: update workflow files"
body: |
This PR was automatically created because workflow files were updated while syncing with upstream.
Please review and merge.
branch: workflow-sync-${{ github.run_id }}
base: main

- name: Send notification if merge conflict
if: steps.merge.outputs.conflict == 'true'
run: |
echo "Merge conflict detected. Manual intervention required."
# Add your notification logic here (e.g., send an email, create an issue, etc.)
2 changes: 2 additions & 0 deletions docs/contributing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ See <gh-file:LICENSE>.
Depending on the kind of development you'd like to do (e.g. Python, CUDA), you can choose to build vLLM with or without compilation.
Check out the [building from source][build-from-source] documentation for details.

For a containerized developer workflow, see Podman-first dev: `docs/contributing/podman-dev.md`.

For an optimized workflow when iterating on C++/CUDA kernels, see the [Incremental Compilation Workflow](./incremental_build.md) for recommendations.

### Building the docs with MkDocs
Expand Down
41 changes: 41 additions & 0 deletions docs/contributing/podman-dev.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Podman-first Development Environment
---

This guide documents the Podman-first development workflow for building vLLM from source with CUDA and PyTorch nightly.

Primary entrypoint

- Windows (PowerShell): `./extras/podman/run.ps1`
- Linux/macOS (bash): `extras/podman/run.sh`

Legacy launchers at `extras/run-vllm-dev.ps1` and `extras/run-vllm-dev.sh` are deprecated and forward to the Podman wrappers.

Prerequisites

- Podman with GPU CDI enabled (on Windows, use Podman Desktop + WSL; ensure NVIDIA drivers and CUDA are installed on the host).
- Optional named volume for build/work space, e.g., `vllm-work`.

Quick start

Windows (PowerShell):

```powershell
./extras/podman/run.ps1 -Build
./extras/podman/run.ps1 -GPUCheck
./extras/podman/run.ps1 -Setup -WorkVolume vllm-work -Progress
```

Linux/macOS (bash):

```bash
extras/podman/run.sh --build
extras/podman/run.sh --gpu-check
extras/podman/run.sh --setup --work-volume vllm-work --progress
```

Notes

- The image uses CUDA 12.9 UBI9 and installs PyTorch nightly cu129 first to ensure latest GPU arch support (including sm_120 when present).
- The setup step performs an editable vLLM install without downgrading torch family packages.
- Use a named Podman volume for `/opt/work` to avoid `/tmp` tmpfs pressure and to speed up rebuilds.
39 changes: 39 additions & 0 deletions extras/.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Reduce build context to avoid Windows Podman tar write issues
.git
.github
.vscode
.venv
venv
node_modules
build
dist
csrc/
vllm/
benchmarks/
docs/
examples/
tests/
**/__pycache__
**/*.pyc
**/*.pyo
**/*.pyd
**/*.so
**/*.o
**/*.a
**/*.dll
**/*.dylib
extras/build.log
extras/*.bak
extras/tools/
extras/run-vllm-dev-*.ps1
extras/run-vllm-dev-*.sh
extras/*wsl*
extras/*docker*.ps1

!extras/Dockerfile
!extras/run-vllm-dev.ps1
!extras/run-vllm-dev.sh
!extras/dev-setup.sh
requirements/
pyproject.toml
setup.py
168 changes: 168 additions & 0 deletions extras/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# vLLM Development Container with GPU Support
# Uses vLLM's own requirements for automatic dependency management

FROM nvidia/cuda:12.9.1-cudnn-devel-ubi9

# Set CUDA environment variables for build tools
ENV CUDA_HOME=/usr/local/cuda
ENV CUDA_ROOT=/usr/local/cuda
ENV PATH=$CUDA_HOME/bin:$PATH
ENV LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
ENV CUDA_TOOLKIT_ROOT_DIR=$CUDA_HOME
ENV CUDNN_LIBRARY_PATH=/usr/lib64
ENV CUDNN_INCLUDE_PATH=/usr/include

# Install system packages with additional CUDA development libraries
RUN dnf update -y && dnf install --allowerasing -y \
python3 python3-pip python3-devel \
git gcc gcc-c++ cmake ninja-build \
make patch which findutils tar rsync \
wget curl vim nano \
&& dnf clean all

# Create symlinks for python
RUN ln -sf /usr/bin/python3 /usr/bin/python

# Create a non-root user for development
RUN useradd -m -s /bin/bash vllmuser && \
echo "vllmuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers

# Install essential system tools
RUN dnf install -y hostname iproute iputils

# Add NVIDIA Machine Learning repo for RHEL9/UBI9 and install NCCL runtime/devel
# Needed for PyTorch nightly cu129 to avoid ncclCommWindowRegister symbol errors
# Install NCCL runtime/devel from the CUDA repository available in the base image
RUN set -euxo pipefail \
&& dnf makecache -y \
&& (dnf install -y libnccl libnccl-devel || dnf install -y libnccl-2 libnccl-devel-2) \
&& dnf clean all

# Set working directory and adjust ownership
WORKDIR /workspace
RUN chown -R vllmuser:vllmuser /workspace

# Create build directories with proper permissions
RUN mkdir -p /workspace/.deps && chown -R vllmuser:vllmuser /workspace/.deps && \
mkdir -p /tmp/vllm-build && chmod 777 /tmp/vllm-build && \
mkdir -p /opt/work && chmod 777 /opt/work && \
mkdir -p /home/vllmuser/.cache && chown -R vllmuser:vllmuser /home/vllmuser/.cache && \
mkdir -p /home/vllmuser/.ccache && chown -R vllmuser:vllmuser /home/vllmuser/.ccache && \
mkdir -p /home/vllmuser/.cmake && chown -R vllmuser:vllmuser /home/vllmuser/.cmake && \
chmod -R 755 /workspace && \
chmod -R 777 /tmp

# Switch to the non-root user
USER vllmuser

# Create and activate virtual environment
ENV VIRTUAL_ENV=/home/vllmuser/venv
RUN python3 -m venv $VIRTUAL_ENV
ENV PATH="$VIRTUAL_ENV/bin:$PATH"

# Set pip configuration
ENV PIP_DISABLE_PIP_VERSION_CHECK=1
ENV PIP_NO_CACHE_DIR=1
ENV PYTHONUNBUFFERED=1
ENV PIP_DEFAULT_TIMEOUT=120
ENV PIP_RETRIES=5
ENV PIP_PREFER_BINARY=1

# Upgrade pip and setuptools to latest versions
RUN pip install --upgrade pip setuptools>=61 wheel

COPY requirements/ /tmp/requirements/

# Install PyTorch nightly first (includes latest GPU arch support such as Blackwell sm_120 when present)
RUN pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129

# Install modern build tools and vLLM's build dependencies and CUDA deps early,
# but sanitize requirements to avoid downgrading torch-family or forcing xformers pins.
COPY pyproject.toml /tmp/pyproject.toml
RUN set -euxo pipefail \
&& cd /tmp \
&& pip install "setuptools>=61" "setuptools-scm>=8" build wheel ninja cmake \
&& mkdir -p /tmp/requirements_sanitized \
&& for f in build.txt cuda.txt common.txt; do \
if [ -f "/tmp/requirements/$f" ]; then \
sed -E '/^(torch|torchvision|torchaudio|xformers)\b/Id' "/tmp/requirements/$f" > "/tmp/requirements_sanitized/$f"; \
fi; \
done \
&& pip install --pre \
-r /tmp/requirements_sanitized/build.txt \
-r /tmp/requirements_sanitized/cuda.txt \
-r /tmp/requirements_sanitized/common.txt \
&& pip install --pre --upgrade \
torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu129

# Install minimal development extras
RUN pip install pytest pytest-asyncio ipython

# Note: vLLM will be installed from source in development mode via dev-setup.sh
# This ensures compatibility with the PyTorch nightly build

# Create activation script for easy virtual environment access
RUN echo '#!/bin/bash' > /home/vllmuser/activate_venv.sh && \
echo 'source /home/vllmuser/venv/bin/activate' >> /home/vllmuser/activate_venv.sh && \
echo 'echo "Virtual environment activated: $VIRTUAL_ENV"' >> /home/vllmuser/activate_venv.sh && \
echo 'echo "Python version: $(python --version)"' >> /home/vllmuser/activate_venv.sh && \
echo 'echo "PyTorch version: $(python -c \"import torch; print(torch.__version__)\")"' >> /home/vllmuser/activate_venv.sh && \
echo 'echo "CUDA available: $(python -c \"import torch; print(torch.cuda.is_available())\")"' >> /home/vllmuser/activate_venv.sh && \
chmod +x /home/vllmuser/activate_venv.sh

# Ensure virtual environment is activated in .bashrc
RUN echo 'source /home/vllmuser/venv/bin/activate' >> /home/vllmuser/.bashrc && \
echo 'echo "🐍 Python virtual environment activated"' >> /home/vllmuser/.bashrc && \
echo 'echo "🚀 Ready for vLLM development!"' >> /home/vllmuser/.bashrc

# Create development helper script that uses current workspace requirements
RUN echo '#!/bin/bash' > /home/vllmuser/setup_vllm_dev.sh && \
echo 'echo "🔧 Setting up vLLM for development..."' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'cd /workspace' >> /home/vllmuser/setup_vllm_dev.sh && \
echo '# Use temporary build directory to avoid permission issues' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'export TMPDIR=/tmp/vllm-build' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'mkdir -p "$TMPDIR" && chmod 777 "$TMPDIR"' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'export CMAKE_BUILD_PARALLEL_LEVEL=4' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'export VLLM_INSTALL_PUNICA_KERNELS=0' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'export MAX_JOBS=4' >> /home/vllmuser/setup_vllm_dev.sh && \
echo '# Install current workspace requirements first' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'if [ -f requirements/common.txt ]; then pip install -r requirements/common.txt; fi' >> /home/vllmuser/setup_vllm_dev.sh && \
echo '# Use temporary directory for CMake build files' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'FETCHCONTENT_BASE_DIR="$TMPDIR/deps" pip install -e . --no-deps --no-build-isolation --verbose' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'echo "✅ vLLM installed in editable mode!"' >> /home/vllmuser/setup_vllm_dev.sh && \
echo 'python -c "import vllm; print(\"vLLM version:\", vllm.__version__)"' >> /home/vllmuser/setup_vllm_dev.sh && \
chmod +x /home/vllmuser/setup_vllm_dev.sh

# Add environment variables for better CUDA memory management and build optimization
ENV PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
# Do not pin a single GPU here; let runtime inject device selection
# ENV CUDA_VISIBLE_DEVICES=0
ENV CMAKE_BUILD_PARALLEL_LEVEL=4
ENV VLLM_INSTALL_PUNICA_KERNELS=0
ENV MAX_JOBS=4

# Enable ccache for faster rebuilds
ENV CCACHE_DIR=/home/vllmuser/.ccache
ENV CCACHE_MAXSIZE=10G
ENV PATH=/usr/lib64/ccache:$PATH

# CUDA arch list including legacy + latest (sm_120) so builds cover both older and newest GPUs.
ENV TORCH_CUDA_ARCH_LIST="7.0 7.5 8.0 8.6 8.9 9.0 12.0"
# Do not force-disable Machete; allow upstream defaults. User may still pass -e CMAKE_ARGS for custom CMake settings.
ENV CMAKE_ARGS=""

# WSL2-specific CUDA environment configuration
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=compute,utility
ENV LD_LIBRARY_PATH=/usr/local/cuda/compat:/usr/lib/wsl/drivers:/usr/lib/wsl/lib:/usr/lib/x86_64-linux-gnu:/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH

# Add runtime library detection script
RUN echo '#!/bin/bash' > /home/vllmuser/check_cuda_libs.sh && \
echo 'echo "=== CUDA Library Check ==="' >> /home/vllmuser/check_cuda_libs.sh && \
echo 'echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"' >> /home/vllmuser/check_cuda_libs.sh && \
echo 'echo "Searching for CUDA libraries..."' >> /home/vllmuser/check_cuda_libs.sh && \
echo 'find /usr/lib/wsl -name "libcuda.so*" 2>/dev/null | head -3 || echo "No WSL CUDA libs"' >> /home/vllmuser/check_cuda_libs.sh && \
echo 'ldconfig -p | grep cuda | head -3 || echo "No CUDA in ldconfig"' >> /home/vllmuser/check_cuda_libs.sh && \
echo 'echo "PyTorch CUDA status:"' >> /home/vllmuser/check_cuda_libs.sh && \
echo 'python -c "import torch; print(f\"CUDA available: {torch.cuda.is_available()}\"); print(f\"Device count: {torch.cuda.device_count()}\")" 2>/dev/null || echo "PyTorch not available"' >> /home/vllmuser/check_cuda_libs.sh && \
chmod +x /home/vllmuser/check_cuda_libs.sh
50 changes: 50 additions & 0 deletions extras/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# extras/ overview

This directory hosts all non-core assets: container/build tooling, configs, testing, storage helpers, and optional patches. The goals are clarity, single-responsibility, and easy extension without touching the vLLM core.

Suggested layout (implemented here):

- podman/ — Podman-specific build/launch wrappers and helpers
- configs/ — Centralized, declarative versions and build configuration
- secrets/ — Gitignored area for local tokens/config (not committed)
- testing/ — Test/benchmark harness, matrices, and results
- storage/ — External volumes and cache management helpers
- patches/ — Optional patch/plug-in mechanism for controlled tweaks

Primary entrypoint: use `extras/podman/` as the canonical way to build and run the dev container.

Deprecation: the legacy launchers `extras/run-vllm-dev.sh` and `extras/run-vllm-dev.ps1` are deprecated and now forward to the Podman wrappers. Please switch to `extras/podman/run.sh` (Linux/macOS) or `extras/podman/run.ps1` (Windows).

## Quick start

- Edit `extras/configs/build.env` to set CUDA/UBI/Python defaults.
- Use `extras/podman/build.sh` to build images with those defaults.
- Use `extras/podman/run.ps1` (Windows) or `extras/podman/run.sh` (Linux/macOS) to run the dev container.

Examples

- Windows (PowerShell):
- Build image: `./extras/podman/run.ps1 -Build`

Check failure on line 27 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Hard tabs [Column: 1]

Check failure on line 27 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Unordered list indentation [Expected: 4; Actual: 1]

Check notice on line 27 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L27

Column: 1

Check notice on line 27 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L27

Expected: 4; Actual: 1
- GPU check: `./extras/podman/run.ps1 -GPUCheck`

Check failure on line 28 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Hard tabs [Column: 1]

Check failure on line 28 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Unordered list indentation [Expected: 4; Actual: 1]

Check notice on line 28 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L28

Column: 1

Check notice on line 28 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L28

Expected: 4; Actual: 1
- Setup build: `./extras/podman/run.ps1 -Setup -WorkVolume vllm-work -Progress`

Check failure on line 29 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Hard tabs [Column: 1]

Check failure on line 29 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Unordered list indentation [Expected: 4; Actual: 1]

Check notice on line 29 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L29

Column: 1

Check notice on line 29 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L29

Expected: 4; Actual: 1

- Linux/macOS (bash):
- Build image: `extras/podman/run.sh --build`

Check failure on line 32 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Hard tabs [Column: 1]

Check failure on line 32 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Unordered list indentation [Expected: 4; Actual: 1]

Check notice on line 32 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L32

Column: 1

Check notice on line 32 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L32

Expected: 4; Actual: 1
- GPU check: `extras/podman/run.sh --gpu-check`

Check failure on line 33 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Hard tabs [Column: 1]

Check failure on line 33 in extras/README.md

View workflow job for this annotation

GitHub Actions / pre-commit

Unordered list indentation [Expected: 4; Actual: 1]

Check notice on line 33 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L33

Column: 1

Check notice on line 33 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L33

Expected: 4; Actual: 1
- Setup build: `extras/podman/run.sh --setup --work-volume vllm-work --progress`

Check notice on line 34 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L34

Column: 1

Check notice on line 34 in extras/README.md

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

extras/README.md#L34

Expected: 4; Actual: 1

## Secrets

Place tokens in `extras/secrets/` per its README and never commit them. Load them in session or bind-mount into containers.

## Testing

See `extras/testing/README.md` for defining a matrix, recording results, and comparing runs.

## Storage

See `extras/storage/README.md` for model/cache volume guidance for performance and reproducibility.

## Patches

If you need to tweak upstream vLLM without forking, use `extras/patches/` to stage diffs and apply them during build.
Loading