diff --git a/debian/files/opt/dupfinder/dupfinder-setup.sh b/debian/files/opt/dupfinder/dupfinder-setup.sh index f7e758d..1181779 100644 --- a/debian/files/opt/dupfinder/dupfinder-setup.sh +++ b/debian/files/opt/dupfinder/dupfinder-setup.sh @@ -53,12 +53,45 @@ if ! docker compose version &>/dev/null; then fi ok "docker compose V2 available" -# ── Check NVIDIA GPU ────────────────────────────────────────────────────────── +# ── Check NVIDIA GPU + container toolkit ───────────────────────────────────── info "Checking GPU..." if command -v nvidia-smi &>/dev/null && nvidia-smi &>/dev/null; then GPU_NAME=$(nvidia-smi --query-gpu=name --format=csv,noheader 2>/dev/null | head -1) ok "NVIDIA GPU detected: $GPU_NAME" - GPU_AVAILABLE=true + + # nvidia-container-toolkit is required for Docker GPU passthrough + if ! command -v nvidia-ctk &>/dev/null && ! dpkg -l nvidia-container-toolkit &>/dev/null 2>&1; then + echo "" + echo " nvidia-container-toolkit is not installed." + echo " Without it Docker cannot pass the GPU to the container." + echo " Install with:" + echo "" + echo " curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg" + echo " curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list" + echo " sudo apt update && sudo apt install -y nvidia-container-toolkit" + echo " sudo nvidia-ctk runtime configure --runtime=docker" + echo " sudo systemctl restart docker" + echo "" + read -rp " Install nvidia-container-toolkit now? (Y/n): " INST_CTK + if [[ "$INST_CTK" != "n" && "$INST_CTK" != "N" ]]; then + curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \ + | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg + curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \ + | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \ + | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list + apt update -qq && apt install -y nvidia-container-toolkit + nvidia-ctk runtime configure --runtime=docker + systemctl restart docker + ok "nvidia-container-toolkit installed and Docker restarted" + else + echo " Skipping — GPU will not be available in Docker. You can re-run setup later." + GPU_AVAILABLE=false + fi + else + ok "nvidia-container-toolkit is present" + fi + + [[ "$GPU_AVAILABLE" != "false" ]] && GPU_AVAILABLE=true else echo " No NVIDIA GPU detected — will use CPU for perceptual hashing" GPU_AVAILABLE=false