#!/usr/bin/env bash set -euo pipefail if [ "$(id -u)" -ne 0 ]; then echo "Run as root, e.g. sudo $0" >&2 exit 1 fi . /etc/os-release if [ "${ID:-}" != "debian" ]; then echo "This script is intended for Debian. Detected ID=${ID:-unknown}" >&2 exit 1 fi echo "==> Removing conflicting Docker packages, if present" apt-get remove -y \ docker.io \ docker-compose \ docker-doc \ podman-docker \ containerd \ runc || true echo "==> Installing minimal repo setup tools" apt-get update apt-get install -y --no-install-recommends \ ca-certificates \ curl echo "==> Adding Docker official APT repo" install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg \ -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc cat > /etc/apt/sources.list.d/docker.sources < Installing build/test packages" apt-get update apt-get install -y --no-install-recommends \ docker-ce \ docker-buildx-plugin \ qemu-user-static \ binfmt-support \ make echo "==> Enabling Docker" systemctl enable --now docker echo "==> Registering binfmt handlers" systemctl restart binfmt-support || true echo "==> Docker version" docker --version echo "==> Buildx version" docker buildx version || true echo "==> Done" echo echo "Optional: allow your normal user to run docker without sudo:" echo " sudo usermod -aG docker \$USER" echo "Then log out and back in."