Files
big-bear-scripts/install-docker/run.sh
Christopher 222e6af258 🔧 refactor: Use #!/usr/bin/env bash in all shell scripts (#16)
This commit refactors all the shell scripts to use `#!/usr/bin/env bash` instead of `#!/bin/bash`. This change ensures that the scripts will run with the system's default Bash interpreter, even if it is not located at the standard `/bin/bash` path.
2024-10-23 13:32:15 -05:00

73 lines
2.2 KiB
Bash

#!/usr/bin/env bash
# Function to ask for user confirmation
confirm() {
while true; do
read -rp "$1 [y/n]: " yn
case $yn in
[Yy]*) return 0 ;;
[Nn]*) return 1 ;;
*) echo "Please answer yes or no." ;;
esac
done
}
# Check if Docker is installed via Snap
if snap list docker &> /dev/null; then
echo "Docker is installed via Snap."
if confirm "Do you want to uninstall the Snap version of Docker?"; then
echo "Uninstalling Docker from Snap..."
sudo snap remove docker
else
echo "Skipping Docker uninstallation from Snap."
fi
else
echo "Docker is not installed via Snap, or Snap is not installed."
fi
# Update package database
echo "Updating package database..."
sudo apt-get update
# Install prerequisites
echo "Installing prerequisites..."
sudo apt-get install -y \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Add Docker's official GPG key
echo "Adding Docker's official GPG key..."
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Set up the stable repository
echo "Setting up Docker repository..."
DISTRO=$(lsb_release -is | tr '[:upper:]' '[:lower:]')
CODENAME=$(lsb_release -cs)
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/$DISTRO \
$CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine
echo "Installing Docker Engine..."
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
# Verify Docker installation
echo "Verifying Docker installation..."
sudo docker run hello-world
# Ask if the user wants to install Docker Compose
if confirm "Do you want to install Docker Compose?"; then
echo "Installing Docker Compose..."
sudo curl -L "https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
echo "Docker Compose installed successfully."
else
echo "Skipping Docker Compose installation."
fi
echo "Docker installation completed successfully!"