82 lines
3.4 KiB
Bash
Executable File
82 lines
3.4 KiB
Bash
Executable File
#! /bin/bash --
|
|
[ ! -z "${GREZZO_1577141523}" ] && return; GREZZO_1577141523=0
|
|
|
|
. "$(this_script_path)/lsb-release.sh"
|
|
|
|
function feat_addpacks_docker() {
|
|
if ! feat_missing "apt-get"; then
|
|
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
|
|
sudo apt-get update
|
|
if [ "$(apt-cache search docker-ce | grep -o "^docker-ce ")" != "docker-ce" ]; then
|
|
sudo mkdir -p /etc/apt/keyrings
|
|
sudo apt-get install \
|
|
ca-certificates \
|
|
curl \
|
|
gnupg
|
|
sudo install -m 0755 -d /etc/apt/keyrings
|
|
if [ -f /etc/lsb-release ]; then
|
|
. /etc/lsb-release
|
|
fi
|
|
if [ -f /etc/os-release ]; then
|
|
. /etc/os-release
|
|
fi
|
|
DISTRIB_ID="${DISTRIB_ID:-$ID}"
|
|
DISTRIB_CODENAME="${DISTRIB_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}"
|
|
if [ -z "$DISTRIB_CODENAME" ]; then
|
|
feat_needed "lsb_release"
|
|
if [ -f /etc/lsb-release ]; then
|
|
. /etc/lsb-release
|
|
fi
|
|
DISTRIB_ID="${DISTRIB_ID:-$ID}"
|
|
DISTRIB_CODENAME="${DISTRIB_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}"
|
|
if [ -z "$DISTRIB_CODENAME" ]; then
|
|
echo "Impossibile determinare DISTRIB_CODENAME (mancano /etc/lsb-release e /etc/os-release)" >&2
|
|
return 1
|
|
fi
|
|
fi
|
|
sudo rm -rf /etc/apt/keyrings/docker.gpg >/dev/null 2>&1
|
|
if [[ "$DISTRIB_ID" == "LinuxMint" || "$DISTRIB_ID" == "linuxmint" ]]; then
|
|
if [ -f /etc/upstream-release/lsb-release ]; then
|
|
. /etc/upstream-release/lsb-release
|
|
DISTRIB_CODENAME="${DISTRIB_CODENAME:-${UBUNTU_CODENAME:-$VERSION_CODENAME}}"
|
|
fi
|
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
|
$DISTRIB_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
elif [[ "$DISTRIB_ID" == "Ubuntu" || "$DISTRIB_ID" == "ubuntu" ]]; then
|
|
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
|
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
|
|
$DISTRIB_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
else
|
|
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
|
|
sudo chmod a+r /etc/apt/keyrings/docker.asc
|
|
echo \
|
|
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
|
|
$DISTRIB_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
|
fi
|
|
sudo apt-get update
|
|
fi
|
|
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
fi
|
|
}
|
|
|
|
function feat_add_docker() {
|
|
if feat_missing "docker"; then
|
|
feat_addpacks_docker
|
|
fi
|
|
if getent group docker >/dev/null 2>&1; then
|
|
local target_user
|
|
target_user="${SUDO_USER:-$USER}"
|
|
if getent passwd "$target_user" >/dev/null 2>&1; then
|
|
if ! id -nG "$target_user" | grep -qw docker; then
|
|
sudo usermod -aG docker "$target_user"
|
|
echo "Utente aggiunto al gruppo docker. Esegui logout/login per applicare i permessi."
|
|
fi
|
|
fi
|
|
fi
|
|
}
|