#!/bin/bash # 2022-08-05 Hyperling # Install docker from official repository. Currently only supports apt. # Original comands came from here: https://docs.docker.com/engine/install/debian/ # usage: install.sh ## Variables ## os=`grep ^'NAME=' /etc/os-release` pkgmgr="" ## Validations ## if [[ "$os" == *"Debian"* ]]; then repo="debian" pkgmgr="apt" elif [[ "$os" == *"Ubuntu"* ]]; then repo="ubuntu" pkgmgr="apt" elif [[ $os == "Arch Linux" ]]; then pkgmgr="pacman" else echo "Distribution not yet supported." && exit 1 fi echo "os=$os" echo "repo=$repo" echo "pkgmgr=$pkgmgr" ## Main ## if [[ "$pkgmgr" == "apt" ]]; then apt purge docker docker-engine docker.io containerd runc apt update && apt install -y ca-certificates curl gnupg lsb-release && mkdir -p /etc/apt/keyrings && curl -fsSL https://download.docker.com/linux/$repo/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg && echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$repo \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null && apt update && apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && echo "Success!" && exit 0 elif [[ $pkgmgr == "pacman" ]]; then pacman -Rcns --noconfirm *docker* pacman -Sy --noconfirm docker docker-compose && echo "Success!" && exit 0 fi ## Error ## echo "ERROR: Installation failed!" exit 1