Skip to content

Instantly share code, notes, and snippets.

@hartingsdev
Created January 6, 2026 11:14
Show Gist options
  • Select an option

  • Save hartingsdev/b5e22076f1020d41bcab8d628c16f630 to your computer and use it in GitHub Desktop.

Select an option

Save hartingsdev/b5e22076f1020d41bcab8d628c16f630 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
set -euo pipefail
export DEBIAN_FRONTEND=noninteractive
# ===== CONFIG =====
# Username to be added to docker group
# MUST already exist on the system
DOCKER_USER="hartings"
# ==================
echo "=== System update ==="
apt-get update -y
apt-get upgrade -y
echo "=== Installing prerequisites ==="
apt-get install -y --no-install-recommends \
ca-certificates \
curl \
gnupg \
lsb-release
echo "=== Configure Docker APT repository ==="
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg \
| gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
ARCH="$(dpkg --print-architecture)"
CODENAME="$(. /etc/os-release && echo "$VERSION_CODENAME")"
echo \
"deb [arch=${ARCH} signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
${CODENAME} stable" \
> /etc/apt/sources.list.d/docker.list
echo "=== Install Docker Engine and Compose ==="
apt-get update -y
apt-get install -y --no-install-recommends \
docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
echo "=== Enable Docker service ==="
systemctl enable docker
systemctl start docker
echo "=== Add user to docker group ==="
if id "${DOCKER_USER}" &>/dev/null; then
usermod -aG docker "${DOCKER_USER}"
echo "User '${DOCKER_USER}' added to docker group."
else
echo "User '${DOCKER_USER}' does not exist — skipping group assignment."
fi
echo "=== Verifying installation ==="
docker --version
docker compose version
echo "=== Completed successfully ==="
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment