120 lines
2.4 KiB
Bash
120 lines
2.4 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
echo "================================="
|
|
echo " Docker Installation"
|
|
echo "================================="
|
|
|
|
BASE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Detect OS
|
|
if [[ -f /etc/os-release ]]; then
|
|
. /etc/os-release
|
|
else
|
|
echo "Cannot detect operating system."
|
|
exit 1
|
|
fi
|
|
|
|
echo "Detected OS: $ID"
|
|
|
|
echo "Running Docker installer for this distro..."
|
|
|
|
case "$ID" in
|
|
|
|
ubuntu)
|
|
bash "$BASE_DIR/os/ubuntu.sh"
|
|
;;
|
|
|
|
debian)
|
|
bash "$BASE_DIR/os/debian.sh"
|
|
;;
|
|
|
|
fedora|centos|rocky|almalinux|rhel)
|
|
bash "$BASE_DIR/os/rhel.sh"
|
|
;;
|
|
|
|
arch|manjaro)
|
|
bash "$BASE_DIR/os/arch.sh"
|
|
;;
|
|
|
|
alpine)
|
|
bash "$BASE_DIR/os/alpine.sh"
|
|
;;
|
|
|
|
opensuse*|suse|opensuse-leap|opensuse-tumbleweed)
|
|
bash "$BASE_DIR/os/opensuse.sh"
|
|
;;
|
|
|
|
*)
|
|
echo "Unsupported distribution: $ID"
|
|
exit 1
|
|
;;
|
|
|
|
esac
|
|
|
|
echo "Docker installation completed successfully."
|
|
|
|
echo "================================="
|
|
echo " Mirror Configuration"
|
|
echo "================================="
|
|
|
|
read -rp "Configure Docker mirror? (y/n): " DOCKER_MIRROR
|
|
|
|
if [[ "$DOCKER_MIRROR" == "y" ]]; then
|
|
|
|
echo "Select Docker mirror provider:"
|
|
echo "1) Liara"
|
|
echo "2) ArvanCloud"
|
|
echo "3) Runflare"
|
|
|
|
read -rp "Choice [1-3]: " DM
|
|
|
|
case "$DM" in
|
|
1)
|
|
echo "Applying Liara Docker mirror..."
|
|
bash "$BASE_DIR/mirrors/liara.sh"
|
|
;;
|
|
2)
|
|
echo "Applying ArvanCloud Docker mirror..."
|
|
bash "$BASE_DIR/mirrors/arvancloud.sh"
|
|
;;
|
|
3)
|
|
echo "Applying Runflare Docker mirror..."
|
|
bash "$BASE_DIR/mirrors/runflare.sh"
|
|
;;
|
|
*)
|
|
echo "Invalid choice. Skipping mirror configuration."
|
|
;;
|
|
esac
|
|
|
|
else
|
|
echo "Skipping Docker mirror configuration."
|
|
fi
|
|
|
|
echo "================================="
|
|
echo "Starting Docker service..."
|
|
|
|
systemctl enable docker
|
|
systemctl restart docker
|
|
|
|
if [[ -n "$SUDO_USER" ]]; then
|
|
echo "Adding $SUDO_USER to docker group..."
|
|
usermod -aG docker "$SUDO_USER" 2>/dev/null || true
|
|
fi
|
|
|
|
echo "================================="
|
|
echo "Verifying Docker installation..."
|
|
|
|
docker --version
|
|
|
|
if systemctl is-active --quiet docker; then
|
|
echo "Docker service is running."
|
|
else
|
|
echo "Docker service is NOT running."
|
|
fi
|
|
|
|
echo "================================="
|
|
echo "Docker setup finished successfully"
|
|
echo "================================="
|