Update docker-vm.sh
This commit is contained in:
parent
4736022898
commit
108ff22a28
@ -422,13 +422,17 @@ if [[ "$FILE" == *.img ]]; then
|
||||
fi
|
||||
|
||||
# ---------- Ensure libguestfs-tools ----------
|
||||
if ! command -v virt-customize &>/dev/null; then
|
||||
msg_info "Installing libguestfs-tools on host"
|
||||
INSTALL_MODE="direct"
|
||||
if ! command -v virt-customize >/dev/null 2>&1; then
|
||||
msg_info "Installing libguestfs-tools"
|
||||
apt-get -qq update >/dev/null
|
||||
apt-get -qq install -y libguestfs-tools lsb-release >/dev/null
|
||||
apt-get -qq install -y libguestfs-tools >/dev/null
|
||||
msg_ok "Installed libguestfs-tools"
|
||||
fi
|
||||
|
||||
# Some PVE9 nodes need this for guestfs
|
||||
export LIBGUESTFS_BACKEND=direct
|
||||
|
||||
# ---------- Decide distro codename & Docker repo base ----------
|
||||
if [[ "$URL" == *"/bookworm/"* || "$FILE" == *"debian-12-"* ]]; then
|
||||
CODENAME="bookworm"
|
||||
@ -461,8 +465,11 @@ fi
|
||||
|
||||
# ---------- PVE8: Direct install into image via virt-customize ----------
|
||||
if [ "$INSTALL_MODE" = "direct" ]; then
|
||||
msg_info "Injecting Docker directly into image (${CODENAME}, $(basename "$DOCKER_BASE"))"
|
||||
virt-customize -q -a "${FILE}" \
|
||||
msg_info "Injecting Docker & QGA into image (${CODENAME}, repo base: $(basename "$DOCKER_BASE"))"
|
||||
# robust retry wrapper
|
||||
vrun() { virt-customize -q -a "${FILE}" "$@" >/dev/null; }
|
||||
|
||||
vrun \
|
||||
--install qemu-guest-agent,apt-transport-https,ca-certificates,curl,gnupg,lsb-release \
|
||||
--run-command "install -m 0755 -d /etc/apt/keyrings" \
|
||||
--run-command "curl -fsSL ${DOCKER_BASE}/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg" \
|
||||
@ -470,17 +477,16 @@ if [ "$INSTALL_MODE" = "direct" ]; then
|
||||
--run-command "echo 'deb [arch=\$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] ${DOCKER_BASE} ${REPO_CODENAME} stable' > /etc/apt/sources.list.d/docker.list" \
|
||||
--run-command "apt-get update -qq" \
|
||||
--run-command "apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin" \
|
||||
--run-command "systemctl enable docker" \
|
||||
--run-command "systemctl enable qemu-guest-agent" >/dev/null
|
||||
--run-command "systemctl enable docker qemu-guest-agent"
|
||||
|
||||
# PATH-Fix separat
|
||||
virt-customize -q -a "${FILE}" \
|
||||
# PATH / login.defs Korrekturen
|
||||
vrun \
|
||||
--run-command "sed -i 's#^ENV_SUPATH.*#ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#' /etc/login.defs || true" \
|
||||
--run-command "sed -i 's#^ENV_PATH.*#ENV_PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin#' /etc/login.defs || true" \
|
||||
--run-command "printf 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\n' >/etc/environment" \
|
||||
--run-command "grep -q 'export PATH=' /root/.bashrc || echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /root/.bashrc" >/dev/null
|
||||
--run-command "grep -q 'export PATH=' /root/.bashrc || echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /root/.bashrc"
|
||||
|
||||
msg_ok "Docker injected into image"
|
||||
msg_ok "Docker & QGA injected"
|
||||
fi
|
||||
|
||||
# ---------- PVE9: First-boot installer inside guest ----------
|
||||
@ -619,7 +625,11 @@ qm set "$VMID" \
|
||||
--scsi0 "${DISK_REF},${DISK_CACHE}${THIN}size=${DISK_SIZE}" \
|
||||
--boot order=scsi0 \
|
||||
--serial0 socket >/dev/null
|
||||
qm set "$VMID" --agent enabled=1 >/dev/null
|
||||
qm set "$VMID" --agent enabled=1,fstrim_cloned_disks=1 >/dev/null
|
||||
qm set "$VMID" --ide2 "${STORAGE}:cloudinit" >/dev/null
|
||||
qm set "$VMID" --ciuser root --cipassword '' --sshkeys "/root/.ssh/authorized_keys" >/dev/null || true
|
||||
qm set "$VMID" --ipconfig0 "ip=dhcp" >/dev/null
|
||||
qm set "$VMID" --nameserver "1.1.1.1 9.9.9.9" --searchdomain "lan" >/dev/null
|
||||
msg_ok "Attached EFI and root disk"
|
||||
|
||||
# ---------- Ensure final size (PVE layer) ----------
|
||||
|
Loading…
x
Reference in New Issue
Block a user