install_docker: idempotent (skip if present), non-interactive gpg

This commit is contained in:
jtricerolph 2026-07-01 13:34:15 +00:00
parent 4e72d46bf9
commit 2469b94b1f

View file

@ -389,11 +389,17 @@ install_docker() {
local id=$1 local id=$1
pct exec "$id" -- bash -s &>/dev/null <<'DOCKER_INSTALL' pct exec "$id" -- bash -s &>/dev/null <<'DOCKER_INSTALL'
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
# Idempotent: if Docker's already here, just make sure it's running and bail.
if command -v docker >/dev/null 2>&1; then
systemctl enable --now docker ssh 2>/dev/null
exit 0
fi
apt-get update -qq 2>/dev/null apt-get update -qq 2>/dev/null
apt-get install -y -qq ca-certificates curl gnupg git openssh-server 2>/dev/null apt-get install -y -qq ca-certificates curl gnupg git openssh-server 2>/dev/null
install -m 0755 -d /etc/apt/keyrings install -m 0755 -d /etc/apt/keyrings
rm -f /etc/apt/keyrings/docker.gpg
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg 2>/dev/null | gpg --batch --yes --dearmor -o /etc/apt/keyrings/docker.gpg 2>/dev/null
echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] \ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu jammy stable" \ https://download.docker.com/linux/ubuntu jammy stable" \
> /etc/apt/sources.list.d/docker.list > /etc/apt/sources.list.d/docker.list