Fix install-local-gpu.sh running its entire setup body twice
Commit 5c85987 appended a second copy of the toolkit-install/DNS-fix/
GPU-verify steps instead of inserting the new prerequisite-checks
section once. Removed the duplicate, keeping the more informative
GPU-check failure message from the second copy.
This commit is contained in:
@@ -147,88 +147,6 @@ echo "✓ Docker restarted"
|
|||||||
systemctl start docker-dns-fix.service
|
systemctl start docker-dns-fix.service
|
||||||
echo "✓ DNS fix applied"
|
echo "✓ DNS fix applied"
|
||||||
|
|
||||||
# ── 5. Verify GPU access ─────────────────────────────────────────────────────
|
|
||||||
echo ""
|
|
||||||
echo "Verifying GPU access inside Docker..."
|
|
||||||
if docker run --rm --gpus all nvidia/cuda:12.1.0-base-ubuntu22.04 nvidia-smi &>/dev/null; then
|
|
||||||
echo "✓ GPU is accessible inside Docker"
|
|
||||||
else
|
|
||||||
echo "⚠ GPU check failed. Try rebooting if the driver was just installed."
|
|
||||||
echo " Manual check: nvidia-smi"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo ""
|
|
||||||
echo "=================================================="
|
|
||||||
echo " Setup complete."
|
|
||||||
echo " Start the app with: ./bring-up-local-gpu.sh"
|
|
||||||
echo "=================================================="
|
|
||||||
|
|
||||||
if command -v nvidia-ctk &>/dev/null; then
|
|
||||||
echo "✓ nvidia-container-toolkit already installed — skipping"
|
|
||||||
else
|
|
||||||
echo "Installing nvidia-container-toolkit..."
|
|
||||||
. /etc/os-release
|
|
||||||
case "$ID" in
|
|
||||||
ubuntu|debian)
|
|
||||||
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
|
|
||||||
| gpg --dearmor -o /usr/share/keyrings/nvidia-ctk.gpg
|
|
||||||
curl -fsSL "https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list" \
|
|
||||||
| sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-ctk.gpg] https://#g' \
|
|
||||||
| tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
|
|
||||||
apt-get update -qq
|
|
||||||
apt-get install -y nvidia-container-toolkit
|
|
||||||
;;
|
|
||||||
rhel|fedora|rocky|centos|almalinux)
|
|
||||||
dnf install -y nvidia-container-toolkit
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "⚠ Unrecognised distro ($ID). Install nvidia-container-toolkit manually."
|
|
||||||
echo " See: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
nvidia-ctk runtime configure --runtime=docker
|
|
||||||
|
|
||||||
# ── 2. Permanent Docker DNS fix via systemd ───────────────────────────────────
|
|
||||||
# Adds a rule to the DOCKER-USER iptables chain so containers can resolve
|
|
||||||
# hostnames. Runs after docker.service on every boot. Does NOT touch ufw.
|
|
||||||
echo ""
|
|
||||||
echo "Installing docker-dns-fix systemd service..."
|
|
||||||
|
|
||||||
cat > /etc/systemd/system/docker-dns-fix.service << 'EOF'
|
|
||||||
[Unit]
|
|
||||||
Description=Allow Docker containers to resolve DNS (DOCKER-USER iptables rule)
|
|
||||||
After=docker.service
|
|
||||||
Requires=docker.service
|
|
||||||
BindsTo=docker.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=oneshot
|
|
||||||
ExecStart=/bin/sh -c \
|
|
||||||
'iptables -C DOCKER-USER -p udp --dport 53 -j ACCEPT 2>/dev/null || \
|
|
||||||
iptables -I DOCKER-USER -p udp --dport 53 -j ACCEPT'
|
|
||||||
RemainAfterExit=yes
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
|
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl enable docker-dns-fix.service
|
|
||||||
echo "✓ docker-dns-fix.service installed and enabled"
|
|
||||||
|
|
||||||
# ── 3. Restart Docker ─────────────────────────────────────────────────────────
|
|
||||||
echo ""
|
|
||||||
echo "Restarting Docker..."
|
|
||||||
systemctl restart docker
|
|
||||||
sleep 2
|
|
||||||
echo "✓ Docker restarted"
|
|
||||||
|
|
||||||
# ── 4. Apply DNS rule now (don't wait for next boot) ─────────────────────────
|
|
||||||
systemctl start docker-dns-fix.service
|
|
||||||
echo "✓ DNS fix applied"
|
|
||||||
|
|
||||||
# ── 5. Verify GPU access ─────────────────────────────────────────────────────
|
# ── 5. Verify GPU access ─────────────────────────────────────────────────────
|
||||||
echo ""
|
echo ""
|
||||||
echo "Verifying GPU access inside Docker..."
|
echo "Verifying GPU access inside Docker..."
|
||||||
|
|||||||
Reference in New Issue
Block a user