#!/usr/bin/env bash set -euo pipefail marker="/host/var/lib/atlas-maintenance/titan-24-docker.ready" host_sh() { chroot /host /bin/sh -c "$*" } host_systemctl() { chroot /host /usr/bin/nsenter -t 1 -m -u -i -n -p /bin/systemctl "$@" } install_docker() { host_sh "apt-get update" host_sh "DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates curl gnupg" host_sh "install -m 0755 -d /etc/apt/keyrings" host_sh "curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc" host_sh "chmod a+r /etc/apt/keyrings/docker.asc" host_sh '. /etc/os-release; codename="${VERSION_CODENAME:-trixie}"; echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian ${codename} stable" > /etc/apt/sources.list.d/docker.list' host_sh "apt-get update" host_sh "DEBIAN_FRONTEND=noninteractive apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin" } configure_docker() { mkdir -p /host/etc/docker if [ ! -f /host/etc/docker/daemon.json ]; then cat >/host/etc/docker/daemon.json <<'JSON' { "log-driver": "local", "log-opts": { "max-size": "50m", "max-file": "3" } } JSON fi host_systemctl daemon-reload host_systemctl enable --now docker } if [ ! -x /host/usr/bin/docker ] || ! host_sh "docker version >/dev/null 2>&1"; then install_docker fi configure_docker mkdir -p "$(dirname "${marker}")" date -Is >"${marker}" while true; do if [ ! -S /host/var/run/docker.sock ]; then configure_docker fi sleep 300 done