|
6 | 6 | # docker build -f dockerfile.dev -t videoannotator:dev . |
7 | 7 | # docker run --gpus all --rm -p 8000:8000 -v ${PWD}/data:/app/data videoannotator:dev |
8 | 8 |
|
9 | | -FROM nvidia/cuda:13.0.1-runtime-ubuntu24.04 |
| 9 | +FROM nvidia/cuda:12.1.1-runtime-ubuntu22.04 |
10 | 10 |
|
11 | 11 | SHELL ["/bin/bash","-lc"] |
12 | 12 | RUN apt-get update && apt-get install -y \ |
13 | 13 | curl python3 python3-venv python3-pip git git-lfs \ |
14 | | - libgl1-mesa-glx libglib2.0-0 libsm6 libxext6 libxrender-dev libgomp1 \ |
| 14 | + libgl1-mesa-dri libglib2.0-0 libsm6 libxext6 libxrender1 libgomp1 \ |
15 | 15 | && rm -rf /var/lib/apt/lists/* |
16 | 16 |
|
17 | 17 | # Ensure locale is generated so LANG=en_US.UTF-8 works inside the container |
@@ -45,18 +45,21 @@ COPY weights/ /app/weights/ |
45 | 45 | RUN uv sync --frozen --no-editable |
46 | 46 |
|
47 | 47 | # Install CUDA PyTorch for GPU acceleration (override CPU version) |
48 | | -RUN uv pip install "torch==2.8.0+cu130" "torchvision==0.21.0+cu130" "torchaudio==2.8.0+cu130" --index-url https://download.pytorch.org/whl/cu130 |
| 48 | +RUN uv pip install "torch==2.3.1+cu121" "torchvision==0.18.1+cu121" "torchaudio==2.3.1+cu121" --index-url https://download.pytorch.org/whl/cu121 |
| 49 | + |
| 50 | +# Install spec-kit tool for specification management |
| 51 | +RUN uv tool install specify-cli --from git+https://github.com/github/spec-kit.git |
49 | 52 |
|
50 | 53 | # Verify GPU access and model cache (no model downloading needed!) |
51 | 54 | RUN uv run python3 -c "\ |
52 | | -import torch; \ |
53 | | -from pathlib import Path; \ |
54 | | -print(f'[DEV BUILD] CUDA available: {torch.cuda.is_available()}'); \ |
55 | | -models_count = len(list(Path('/app/models').rglob('*'))) if Path('/app/models').exists() else 0; \ |
56 | | -weights_count = len(list(Path('/app/weights').rglob('*'))) if Path('/app/weights').exists() else 0; \ |
57 | | -print(f'[DEV BUILD] Models directory: {models_count} files'); \ |
58 | | -print(f'[DEV BUILD] Weights directory: {weights_count} files'); \ |
59 | | -print('[DEV BUILD] Development image ready with local model cache!');" |
| 55 | + import torch; \ |
| 56 | + from pathlib import Path; \ |
| 57 | + print(f'[DEV BUILD] CUDA available: {torch.cuda.is_available()}'); \ |
| 58 | + models_count = len(list(Path('/app/models').rglob('*'))) if Path('/app/models').exists() else 0; \ |
| 59 | + weights_count = len(list(Path('/app/weights').rglob('*'))) if Path('/app/weights').exists() else 0; \ |
| 60 | + print(f'[DEV BUILD] Models directory: {models_count} files'); \ |
| 61 | + print(f'[DEV BUILD] Weights directory: {weights_count} files'); \ |
| 62 | + print('[DEV BUILD] Development image ready with local model cache!');" |
60 | 63 |
|
61 | 64 | # Set environment for development |
62 | 65 | ENV PYTHONUNBUFFERED=1 |
|
0 commit comments