43 lines
1.3 KiB
Bash
43 lines
1.3 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
if ! command -v curl >/dev/null 2>&1; then
|
|
echo "curl is required. Installing curl..."
|
|
sudo apt update
|
|
sudo apt install -y curl
|
|
fi
|
|
|
|
echo "Updating package index..."
|
|
sudo apt update
|
|
|
|
echo "Installing required packages..."
|
|
sudo apt install -y ca-certificates curl gnupg lsb-release
|
|
|
|
echo "Adding Docker's official GPG key..."
|
|
sudo mkdir -p /etc/apt/keyrings
|
|
curl -fsSL "https://download.docker.com/linux/$(
|
|
. /etc/os-release
|
|
echo "$ID"
|
|
)/gpg" | sudo gpg --dearmor >/tmp/docker.gpg
|
|
sudo mv /tmp/docker.gpg /etc/apt/keyrings/docker.gpg
|
|
sudo chmod 644 /etc/apt/keyrings/docker.gpg
|
|
|
|
echo "Setting up the Docker repository..."
|
|
ARCH=$(dpkg --print-architecture)
|
|
OS_ID=$(awk -F= '/^ID=/{gsub(/\"/, "", $2); print $2}' /etc/os-release)
|
|
RELEASE=$(lsb_release -cs)
|
|
echo "deb [arch=$ARCH signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$OS_ID $RELEASE stable" |
|
|
sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
|
|
|
|
echo "Updating package index (with Docker repo)..."
|
|
sudo apt update
|
|
|
|
echo "Installing Docker Engine..."
|
|
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
|
|
|
echo "Docker installation complete!"
|
|
docker --version
|
|
|
|
echo "Allowing Docker use without sudo..."
|
|
sudo usermod -aG docker ${USER}
|
|
exec sg docker newgrp |