TrueNAS Scale Native Docker & VM access to host [Guide]

It doesn’t seem like it actually prints any of the additional debugging statements, but it does seem like it now swallows whatever the error was instead of exploding since the script finishes. Unfortunately it still never enters into the section at the bottom where it should be enabling docker.

§§ Starting script! §§
Flagging root dataset as developer mode
Setting readonly=off on dataset boot-pool/ROOT/24.10.1/opt
Setting readonly=off on dataset boot-pool/ROOT/24.10.1/usr
Hit:1 http://deb.debian.org/debian bookworm InRelease
Hit:2 https://download.docker.com/linux/debian bookworm InRelease
Hit:3 https://apt.sys.truenas.net/electriceel/24.10.0/debian bookworm InRelease
Hit:4 https://apt.sys.truenas.net/electriceel/24.10.0/libnvidia bookworm InRelease
Hit:5 https://apt.sys.truenas.net/electriceel/24.10.0/debian-security bookworm-security InRelease
Hit:6 https://apt.sys.truenas.net/electriceel/24.10.0/debian-backports bookworm-backports InRelease
Hit:7 https://apt.sys.truenas.net/electriceel/24.10.0/debian-debug bookworm-debug InRelease
Hit:8 https://apt.sys.truenas.net/electriceel/24.10.0/yarn stable InRelease
Hit:9 https://apt.sys.truenas.net/electriceel/24.10.0/nvidia bookworm InRelease
Hit:10 https://apt.sys.truenas.net/electriceel/24.10.0/docker bookworm InRelease
Reading package lists...
Building dependency tree...
Reading state information...
87 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists...
Building dependency tree...
Reading state information...
make is already the newest version (4.3-4.1).
open-iscsi is already the newest version (2.1.8-1).
python3-cryptography is already the newest version (38.0.4-3+deb12u1).
python3-pip is already the newest version (23.0.1+dfsg-1).
python3-pyfakefs is already the newest version (4.6.3-3).
python3-pyotp is already the newest version (2.6.0-3).
python3-pytest is already the newest version (7.2.1-2).
python3-pytest-asyncio is already the newest version (0.20.3-1).
python3-pytest-dependency is already the newest version (0.5.1-5).
python3-pytest-rerunfailures is already the newest version (10.2-2).
python3-pytest-timeout is already the newest version (2.1.0-3).
snmp is already the newest version (5.9.3+dfsg-2).
sshpass is already the newest version (1.09-1+b1).
zstd is already the newest version (1.5.4+dfsg2-5).
0 upgraded, 0 newly installed, 0 to remove and 87 not upgraded.
§§ Checking apt and dpkg §§
§§ /bin/apt is already executable §§
§§ /bin/apt-cache is already executable §§
§§ /bin/apt-cdrom is already executable §§
§§ /bin/apt-config is already executable §§
§§ /bin/apt-extracttemplates is already executable §§
§§ /bin/apt-ftparchive is already executable §§
§§ /bin/apt-get is already executable §§
§§ /bin/apt-key is already executable §§
§§ /bin/apt-mark is already executable §§
§§ /bin/apt-sortpkgs is already executable §§
§§ /bin/dpkg is already executable §§
§§ /bin/dpkg-architecture is already executable §§
§§ /bin/dpkg-buildflags is already executable §§
§§ /bin/dpkg-buildpackage is already executable §§
§§ /bin/dpkg-checkbuilddeps is already executable §§
§§ /bin/dpkg-deb is already executable §§
§§ /bin/dpkg-distaddfile is already executable §§
§§ /bin/dpkg-divert is already executable §§
§§ /bin/dpkg-genbuildinfo is already executable §§
§§ /bin/dpkg-genchanges is already executable §§
§§ /bin/dpkg-gencontrol is already executable §§
§§ /bin/dpkg-gensymbols is already executable §§
§§ /bin/dpkg-maintscript-helper is already executable §§
§§ /bin/dpkg-mergechangelogs is already executable §§
§§ /bin/dpkg-name is already executable §§
§§ /bin/dpkg-parsechangelog is already executable §§
§§ /bin/dpkg-query is already executable §§
§§ /bin/dpkg-realpath is already executable §§
§§ /bin/dpkg-scanpackages is already executable §§
§§ /bin/dpkg-scansources is already executable §§
§§ /bin/dpkg-shlibdeps is already executable §§
§§ /bin/dpkg-source is already executable §§
§§ /bin/dpkg-split is already executable §§
§§ /bin/dpkg-statoverride is already executable §§
§§ /bin/dpkg-trigger is already executable §§
§§ /bin/dpkg-vendor is already executable §§
§§ apt update §§
§§ Linking apt sources to your storage for persistence §§
§§ Fix the trust.gpg warnings §§
§§ Docker Checks §§
§§ Keyrings Exist §§
§§ Docker List: §§
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable
deb http://deb.debian.org/debian/ bookworm main non-free non-free-firmware
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/libnvidia/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-security/ bookworm-security main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-backports/ bookworm-backports main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-debug/ bookworm-debug main
deb https://apt.sys.truenas.net/electriceel/24.10.0/yarn/ stable main
deb https://apt.sys.truenas.net/electriceel/24.10.0/nvidia/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/docker/ bookworm stable
§§ Which Docker: /bin/docker §§
§§ Docker storage-driver §§
§§ Docker daemon.json §§
§§ Storage Driver: overlay2 §§
§§ Dataset: /mnt/SSD1/docker §§
§§ Checking /etc/docker/daemon.json §§
§§ Checking file: /etc/docker/daemon.json §§
§§ Which Docker: /bin/docker §§
§§ Docker Version: Docker version 27.1.1, build 6312585 §§
§§ Script Finished! §§

But it reaches the end. Are you sure you added the whole thing I gave you?
It should have printed these:

Log the JSON content

echo “§§ Generated JSON content: §§” >>/tmp/enable-docker.log
echo “$JSON” >>/tmp/enable-docker.log

Yes, I know it doesn’t make sense, but I’m sure I added the lines to the file. I just double checked and ran the script again to sanity check myself.

Log output

§§ Starting script! §§
Flagging root dataset as developer mode
Setting readonly=off on dataset boot-pool/ROOT/24.10.1/opt
Setting readonly=off on dataset boot-pool/ROOT/24.10.1/usr
Get:1 http://deb.debian.org/debian bookworm InRelease [151 kB]
Hit:2 https://download.docker.com/linux/debian bookworm InRelease
Get:3 http://deb.debian.org/debian bookworm/main amd64 Packages [8792 kB]
Hit:4 https://apt.sys.truenas.net/electriceel/24.10.0/debian bookworm InRelease
Get:5 http://deb.debian.org/debian bookworm/main Translation-en [6109 kB]
Hit:6 https://apt.sys.truenas.net/electriceel/24.10.0/libnvidia bookworm InRelease
Get:7 http://deb.debian.org/debian bookworm/non-free amd64 Packages [97.3 kB]
Get:8 http://deb.debian.org/debian bookworm/non-free Translation-en [67.0 kB]
Get:9 http://deb.debian.org/debian bookworm/non-free-firmware amd64 Packages [6240 B]
Hit:10 https://apt.sys.truenas.net/electriceel/24.10.0/debian-security bookworm-security InRelease
Hit:11 https://apt.sys.truenas.net/electriceel/24.10.0/debian-backports bookworm-backports InRelease
Hit:12 https://apt.sys.truenas.net/electriceel/24.10.0/debian-debug bookworm-debug InRelease
Hit:13 https://apt.sys.truenas.net/electriceel/24.10.0/yarn stable InRelease
Hit:14 https://apt.sys.truenas.net/electriceel/24.10.0/nvidia bookworm InRelease
Hit:15 https://apt.sys.truenas.net/electriceel/24.10.0/docker bookworm InRelease
Fetched 15.2 MB in 2s (8810 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
108 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists...
Building dependency tree...
Reading state information...
make is already the newest version (4.3-4.1).
open-iscsi is already the newest version (2.1.8-1).
python3-cryptography is already the newest version (38.0.4-3+deb12u1).
python3-pip is already the newest version (23.0.1+dfsg-1).
python3-pyfakefs is already the newest version (4.6.3-3).
python3-pyotp is already the newest version (2.6.0-3).
python3-pytest is already the newest version (7.2.1-2).
python3-pytest-asyncio is already the newest version (0.20.3-1).
python3-pytest-dependency is already the newest version (0.5.1-5).
python3-pytest-rerunfailures is already the newest version (10.2-2).
python3-pytest-timeout is already the newest version (2.1.0-3).
snmp is already the newest version (5.9.3+dfsg-2).
sshpass is already the newest version (1.09-1+b1).
zstd is already the newest version (1.5.4+dfsg2-5).
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.
§§ Checking apt and dpkg §§
§§ /bin/apt is already executable §§
§§ /bin/apt-cache is already executable §§
§§ /bin/apt-cdrom is already executable §§
§§ /bin/apt-config is already executable §§
§§ /bin/apt-extracttemplates is already executable §§
§§ /bin/apt-ftparchive is already executable §§
§§ /bin/apt-get is already executable §§
§§ /bin/apt-key is already executable §§
§§ /bin/apt-mark is already executable §§
§§ /bin/apt-sortpkgs is already executable §§
§§ /bin/dpkg is already executable §§
§§ /bin/dpkg-architecture is already executable §§
§§ /bin/dpkg-buildflags is already executable §§
§§ /bin/dpkg-buildpackage is already executable §§
§§ /bin/dpkg-checkbuilddeps is already executable §§
§§ /bin/dpkg-deb is already executable §§
§§ /bin/dpkg-distaddfile is already executable §§
§§ /bin/dpkg-divert is already executable §§
§§ /bin/dpkg-genbuildinfo is already executable §§
§§ /bin/dpkg-genchanges is already executable §§
§§ /bin/dpkg-gencontrol is already executable §§
§§ /bin/dpkg-gensymbols is already executable §§
§§ /bin/dpkg-maintscript-helper is already executable §§
§§ /bin/dpkg-mergechangelogs is already executable §§
§§ /bin/dpkg-name is already executable §§
§§ /bin/dpkg-parsechangelog is already executable §§
§§ /bin/dpkg-query is already executable §§
§§ /bin/dpkg-realpath is already executable §§
§§ /bin/dpkg-scanpackages is already executable §§
§§ /bin/dpkg-scansources is already executable §§
§§ /bin/dpkg-shlibdeps is already executable §§
§§ /bin/dpkg-source is already executable §§
§§ /bin/dpkg-split is already executable §§
§§ /bin/dpkg-statoverride is already executable §§
§§ /bin/dpkg-trigger is already executable §§
§§ /bin/dpkg-vendor is already executable §§
§§ apt update §§
§§ Linking apt sources to your storage for persistence §§
§§ Fix the trust.gpg warnings §§
§§ Docker Checks §§
§§ Keyrings Exist §§
§§ Docker List: §§
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable
deb http://deb.debian.org/debian/ bookworm main non-free non-free-firmware
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/libnvidia/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-security/ bookworm-security main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-backports/ bookworm-backports main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-debug/ bookworm-debug main
deb https://apt.sys.truenas.net/electriceel/24.10.0/yarn/ stable main
deb https://apt.sys.truenas.net/electriceel/24.10.0/nvidia/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/docker/ bookworm stable
§§ Which Docker: /usr/bin/docker §§
§§ Docker storage-driver §§
§§ Docker daemon.json §§
§§ Storage Driver: overlay2 §§
§§ Dataset: /mnt/SSD1/docker §§
§§ Checking /etc/docker/daemon.json §§
§§ Checking file: /etc/docker/daemon.json §§
§§ Which Docker: /usr/bin/docker §§
§§ Docker Version: Docker version 27.1.1, build 6312585 §§
§§ Script Finished! §§

script

#!/usr/bin/env bash

set -euo pipefail

# Enable docker and docker-compose on TrueNAS SCALE (no Kubernetes)
# Follow the guide in this post before using this script:
# https://forum.level1techs.com/t/truenas-scale-native-docker-vm-access-to-host-guide/190882
# This script is a hack! Use it at your own risk!!
# Edit all the vars under:
# Vars you need to change
# to point to your storage
#
# Schedule this script to run via System Settings -> Advanced -> Init/Shutdown Scripts
# Click Add -> Type: Script and choose this script -> When: choose to run as Post Init

exec >/tmp/enable-docker.log
mount -o remount,rw /

# Vars you need to change:
# set a path to your docker dataset
docker_dataset="/mnt/SSD1/docker"
# set the docker_daemon path on your storage for it to survive upgrades
new_docker_daemon="/mnt/SSD1/TrueNAS/daemon.json"
# apt sources persist
new_apt_sources="/mnt/SSD1/TrueNAS/aptsources.list"

echo "§§ Starting script! §§"

install-dev-tools

echo "§§ Checking apt and dpkg §§"
for file in /bin/apt* /bin/dpkg*; do
  if [[ ! -x "$file" ]]; then
    echo " §§ $file not executable, fixing... §§"
    chmod +x "$file"
  else
    echo "§§ $file is already executable §§"
  fi
done

echo "§§ apt update §§"
apt-get update -qq

echo "§§ Linking apt sources to your storage for persistence §§"
aptsources="/etc/apt/sources.list"
timestamp=$(date +"%Y%m%d_%H%M%S")
backup_file="/tmp/sources_backup_$timestamp.list"
trap 'rm -f "$backup_file"' EXIT

if [[ -f "$aptsources" ]] && [[ ! -L "$aptsources" ]]; then
  cp "$aptsources" "$new_apt_sources"
  mv "$aptsources" "$aptsources.old"
fi

if [[ ! -f "$new_apt_sources" ]]; then
  touch "$new_apt_sources"
fi

if [[ ! -f "$aptsources" ]]; then
  ln -s "$new_apt_sources" "$aptsources"
fi

cp "$new_apt_sources" "$backup_file"

echo "§§ Fix the trust.gpg warnings §§"
mkdir -p /etc/apt/trusted.gpg.d

for key in $(gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --list-keys --with-colons | awk -F: '/^pub:/ { print $5 }'); do
  echo "Processing key: $key"
  gpg --no-default-keyring --keyring /etc/apt/trusted.gpg --export --armor "$key" >/etc/apt/trusted.gpg.d/"$key".asc
done

mv /etc/apt/trusted.gpg /etc/apt/trusted.gpg.backup

echo "§§ Docker Checks §§"
apt-get install -y -qq ca-certificates curl gnupg lsb-release

if [[ ! -f /etc/apt/keyrings/docker.gpg ]]; then
  echo "§§ Missing Keyrings §§"
  mkdir -p /etc/apt/keyrings
  chmod 755 /etc/apt/keyrings
  curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  chmod 755 /etc/apt/keyrings/docker.gpg
else
  echo "§§ Keyrings Exist §§"
fi

if ! grep -q "https://download.docker.com/linux/debian" /etc/apt/sources.list; then
  echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | tee -a /etc/apt/sources.list >/dev/null
  apt-get update -qq
else
  echo "§§ Docker List: §§"
  cat /etc/apt/sources.list
fi

Docker=$(command -v docker || true)
DockerV=$(docker --version || true)
DCRCHK=$(apt list --installed 2>/dev/null | grep docker || true)

if [[ -z "$Docker" ]] || [[ -z "$DCRCHK" ]]; then
  echo "Docker executable not found"
  apt-get install -y -qq docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
fi

chmod +x /usr/bin/docker*
install -d -m 755 -- /etc/docker

if [[ ! -f /etc/docker.env ]]; then
  touch /etc/docker.env
fi

. ~/.bashrc
echo "§§ Which Docker: $Docker §§"

echo "§§ Docker storage-driver §§"
version=$(cut -c 1-5 </etc/version | tr -d .)

if ! [[ "$version" =~ ^[0-9]+$ ]]; then
  echo "version is not an integer: $version"
  exit 1
elif [[ "$version" -le 2204 ]]; then
  storage_driver="zfs"
elif [[ "$version" -ge 2212 ]]; then
  storage_driver="overlay2"
fi

echo "§§ Docker daemon.json §§"
echo "§§ Storage Driver: $storage_driver §§"
echo "§§ Dataset: $docker_dataset §§"
# Add debug logging
echo "§§ Attempting to create JSON configuration... §§" >>/tmp/enable-docker.log
read -r -d '' JSON <<END_JSON 2>>/tmp/enable-docker.log || true
{
  "data-root": "$docker_dataset",
  "storage-driver": "$storage_driver",
  "exec-opts": [
    "native.cgroupdriver=cgroupfs"
  ]
}
END_JSON

# Log the JSON content
echo "§§ Generated JSON content: §§" >>/tmp/enable-docker.log
echo "$JSON" >>/tmp/enable-docker.log

docker_daemon="/etc/docker/daemon.json"
echo "§§ Checking $docker_daemon §§"

if [[ $EUID -ne 0 ]]; then
  echo "§§ Please run this script as root or using sudo §§"
  if systemctl list-units --type=service --all | grep -q 'k3s'; then
    if [[ "$(systemctl is-enabled k3s)" == "enabled" ]] || [[ "$(systemctl is-active k3s)" == "active" ]]; then
      echo "§§ You cannot use this script while k3s is enabled or active §§"
    else
      echo "§§ k3s is present but not active or enabled §§"
    fi
  else
    echo "§§ k3s is not present on the system §§"
  fi
elif ! zfs list "$docker_dataset" &>/dev/null; then
  echo "§§ Dataset not found: $docker_dataset §§"
else
  echo "§§ Checking file: $docker_daemon §§"
  if [[ -f "$docker_daemon" ]] && [[ ! -L "$docker_daemon" ]]; then
    rm -rf "$docker_daemon"
  fi
  if [[ ! -f "$new_docker_daemon" ]]; then
    touch "$new_docker_daemon"
  fi
  if [[ ! -f "$docker_daemon" ]]; then
    ln -s "$new_docker_daemon" "$docker_daemon"
  fi

  current_json=$(cat "$docker_daemon" 2>/dev/null || echo "{}")
  merged_json=$(echo "$current_json" | jq --argjson add "$JSON" '. * $add')

  if [[ "$merged_json" != "$current_json" ]]; then
    echo "§§ Updating file: $docker_daemon §§"
    echo "$merged_json" | tee "$docker_daemon" >/dev/null
    if lspci | grep -i nvidia >/dev/null 2>&1; then
      echo "§§ NVIDIA graphics card detected. §§"
      nvidia-ctk runtime configure --runtime=docker
    else
      echo "§§ No NVIDIA graphics card found. §§"
    fi
    if [[ "$(systemctl is-active docker)" == "active" ]]; then
      echo "§§ Restarting Docker §§"
      systemctl restart docker
    elif [[ "$(systemctl is-enabled docker)" != "enabled" ]]; then
      echo "§§ Enable and starting Docker §§"
      systemctl enable --now docker
    fi
  fi
fi

echo "§§ Which Docker: $Docker §§"
echo "§§ Docker Version: $DockerV §§"

echo "§§ Script Finished! §§"

comment out this line, and try to run it again.

Doesn’t look like there was any change in the output, but I’ll include it anyways

§§ Starting script! §§
Flagging root dataset as developer mode
Setting readonly=off on dataset boot-pool/ROOT/24.10.1/opt
Setting readonly=off on dataset boot-pool/ROOT/24.10.1/usr
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 https://download.docker.com/linux/debian bookworm InRelease [43.3 kB]
Get:3 https://download.docker.com/linux/debian bookworm/stable amd64 Packages [34.1 kB]
Hit:4 https://apt.sys.truenas.net/electriceel/24.10.0/debian bookworm InRelease
Hit:5 https://apt.sys.truenas.net/electriceel/24.10.0/libnvidia bookworm InRelease
Hit:6 https://apt.sys.truenas.net/electriceel/24.10.0/debian-security bookworm-security InRelease
Hit:7 https://apt.sys.truenas.net/electriceel/24.10.0/debian-backports bookworm-backports InRelease
Hit:8 https://apt.sys.truenas.net/electriceel/24.10.0/debian-debug bookworm-debug InRelease
Hit:9 https://apt.sys.truenas.net/electriceel/24.10.0/yarn stable InRelease
Hit:10 https://apt.sys.truenas.net/electriceel/24.10.0/nvidia bookworm InRelease
Hit:11 https://apt.sys.truenas.net/electriceel/24.10.0/docker bookworm InRelease
Fetched 77.5 kB in 1s (69.2 kB/s)
Reading package lists...
Building dependency tree...
Reading state information...
108 packages can be upgraded. Run 'apt list --upgradable' to see them.
Reading package lists...
Building dependency tree...
Reading state information...
make is already the newest version (4.3-4.1).
open-iscsi is already the newest version (2.1.8-1).
python3-cryptography is already the newest version (38.0.4-3+deb12u1).
python3-pip is already the newest version (23.0.1+dfsg-1).
python3-pyfakefs is already the newest version (4.6.3-3).
python3-pyotp is already the newest version (2.6.0-3).
python3-pytest is already the newest version (7.2.1-2).
python3-pytest-asyncio is already the newest version (0.20.3-1).
python3-pytest-dependency is already the newest version (0.5.1-5).
python3-pytest-rerunfailures is already the newest version (10.2-2).
python3-pytest-timeout is already the newest version (2.1.0-3).
snmp is already the newest version (5.9.3+dfsg-2).
sshpass is already the newest version (1.09-1+b1).
zstd is already the newest version (1.5.4+dfsg2-5).
0 upgraded, 0 newly installed, 0 to remove and 108 not upgraded.
§§ Checking apt and dpkg §§
§§ /bin/apt is already executable §§
§§ /bin/apt-cache is already executable §§
§§ /bin/apt-cdrom is already executable §§
§§ /bin/apt-config is already executable §§
§§ /bin/apt-extracttemplates is already executable §§
§§ /bin/apt-ftparchive is already executable §§
§§ /bin/apt-get is already executable §§
§§ /bin/apt-key is already executable §§
§§ /bin/apt-mark is already executable §§
§§ /bin/apt-sortpkgs is already executable §§
§§ /bin/dpkg is already executable §§
§§ /bin/dpkg-architecture is already executable §§
§§ /bin/dpkg-buildflags is already executable §§
§§ /bin/dpkg-buildpackage is already executable §§
§§ /bin/dpkg-checkbuilddeps is already executable §§
§§ /bin/dpkg-deb is already executable §§
§§ /bin/dpkg-distaddfile is already executable §§
§§ /bin/dpkg-divert is already executable §§
§§ /bin/dpkg-genbuildinfo is already executable §§
§§ /bin/dpkg-genchanges is already executable §§
§§ /bin/dpkg-gencontrol is already executable §§
§§ /bin/dpkg-gensymbols is already executable §§
§§ /bin/dpkg-maintscript-helper is already executable §§
§§ /bin/dpkg-mergechangelogs is already executable §§
§§ /bin/dpkg-name is already executable §§
§§ /bin/dpkg-parsechangelog is already executable §§
§§ /bin/dpkg-query is already executable §§
§§ /bin/dpkg-realpath is already executable §§
§§ /bin/dpkg-scanpackages is already executable §§
§§ /bin/dpkg-scansources is already executable §§
§§ /bin/dpkg-shlibdeps is already executable §§
§§ /bin/dpkg-source is already executable §§
§§ /bin/dpkg-split is already executable §§
§§ /bin/dpkg-statoverride is already executable §§
§§ /bin/dpkg-trigger is already executable §§
§§ /bin/dpkg-vendor is already executable §§
§§ apt update §§
§§ Linking apt sources to your storage for persistence §§
§§ Fix the trust.gpg warnings §§
§§ Docker Checks §§
§§ Keyrings Exist §§
§§ Docker List: §§
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable
deb http://deb.debian.org/debian/ bookworm main non-free non-free-firmware
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/libnvidia/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-security/ bookworm-security main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-backports/ bookworm-backports main
deb https://apt.sys.truenas.net/electriceel/24.10.0/debian-debug/ bookworm-debug main
deb https://apt.sys.truenas.net/electriceel/24.10.0/yarn/ stable main
deb https://apt.sys.truenas.net/electriceel/24.10.0/nvidia/ bookworm main
deb https://apt.sys.truenas.net/electriceel/24.10.0/docker/ bookworm stable
§§ Which Docker: /usr/bin/docker §§
§§ Docker storage-driver §§
§§ Docker daemon.json §§
§§ Storage Driver: overlay2 §§
§§ Dataset: /mnt/SSD1/docker §§
§§ Checking /etc/docker/daemon.json §§
§§ Checking file: /etc/docker/daemon.json §§
§§ Which Docker: /usr/bin/docker §§
§§ Docker Version: Docker version 27.1.1, build 6312585 §§
§§ Script Finished! §§

OK, 2 things.

  1. I updated the original script, I removed the pipefail, as it is working against us here, I added both std and err out to the log, so we should see all the output of all commands not just the echos.
  2. You should run an apt upgrade, you have over 100 packages that can be upgraded.

try with this and let me know if there’s a difference in the output.