35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
source "$(dirname "$0")/../../lib/common.sh"
|
|
|
|
install_docker() {
|
|
command -v docker &>/dev/null && { log "docker already installed"; return 0; }
|
|
|
|
spawn "Installing docker engine" bash -c "
|
|
curl -fsSL https://get.docker.com | sh
|
|
"
|
|
spawn "Adding user to docker group" sudo usermod -aG docker "$USER"
|
|
warn "Log out and back in for docker group to take effect"
|
|
}
|
|
|
|
uninstall_docker() {
|
|
command -v docker &>/dev/null || { log "docker not installed"; return 0; }
|
|
|
|
local pkgs=(docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-compose-v2)
|
|
local installed=()
|
|
for p in "${pkgs[@]}"; do
|
|
dpkg -s "$p" &>/dev/null && installed+=("$p")
|
|
done
|
|
if [ "${#installed[@]}" -gt 0 ]; then
|
|
spawn "Removing docker engine" sudo apt purge -y "${installed[@]}"
|
|
spawn "Cleaning up dependencies" sudo apt autoremove -y
|
|
fi
|
|
spawn "Removing docker apt repo" sudo rm -f /etc/apt/sources.list.d/docker.list /etc/apt/keyrings/docker.asc /etc/apt/keyrings/docker.gpg
|
|
warn "Docker data remains in /var/lib/docker — remove manually if desired"
|
|
}
|
|
|
|
case "${1:-}" in
|
|
uninstall) uninstall_docker ;;
|
|
*) install_docker ;;
|
|
esac
|