forked from freeleaps/freeleaps-pub
Update for docker installation
This commit is contained in:
parent
eef48ea6e2
commit
e1370f96b1
@ -323,66 +323,82 @@ inspect_args() {
|
|||||||
|
|
||||||
|
|
||||||
install_docker() {
|
install_docker() {
|
||||||
echo "[INFO] Checking Docker installation..."
|
echo "==> Installing Docker..."
|
||||||
|
|
||||||
# Check if Docker CLI is installed
|
# Check if Docker is already installed
|
||||||
if ! command -v docker >/dev/null 2>&1; then
|
if command -v docker &>/dev/null; then
|
||||||
echo "[ERROR] Docker CLI is not installed."
|
echo "==> Docker is already installed."
|
||||||
return 1
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[INFO] Docker CLI is installed. Checking daemon..."
|
# Install Docker using the official script
|
||||||
|
if command -v curl &>/dev/null || command -v wget &>/dev/null; then
|
||||||
|
if command -v curl &>/dev/null; then
|
||||||
|
curl -fsSL https://get.docker.com -o get-docker.sh
|
||||||
|
elif command -v wget &>/dev/null; then
|
||||||
|
wget -qO get-docker.sh https://get.docker.com
|
||||||
|
fi
|
||||||
|
|
||||||
# Check if Docker daemon is running
|
if [ -f get-docker.sh ]; then
|
||||||
if docker info >/dev/null 2>&1; then
|
sudo sh get-docker.sh
|
||||||
echo "[OK] Docker daemon is running."
|
rm -f get-docker.sh
|
||||||
return 0
|
return 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if running on WSL
|
# Install Docker using package manager
|
||||||
if grep -qi microsoft /proc/version; then
|
if command -v apt-get &>/dev/null; then
|
||||||
echo "[INFO] Detected WSL environment. Skipping service startup."
|
sudo apt-get update
|
||||||
if [ -S /var/run/docker.sock ]; then
|
sudo apt-get install -y docker.io
|
||||||
echo "[OK] Docker socket found (/var/run/docker.sock)."
|
return 0
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "[ERROR] Docker socket /var/run/docker.sock not found."
|
|
||||||
echo "[SOLUTION] Please start Docker Desktop on Windows and enable WSL integration, then mount /var/run/docker.sock into the container."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Check if running on macOS
|
if command -v yum &>/dev/null; then
|
||||||
if [[ "$OSTYPE" == "linux-gnu"* ]]; then
|
sudo yum install -y docker
|
||||||
echo "[INFO] Running on Linux. Attempting to start Docker service..."
|
sudo systemctl start docker
|
||||||
if command -v systemctl >/dev/null 2>&1; then
|
sudo systemctl enable docker
|
||||||
echo "[INFO] Starting Docker with systemctl..."
|
return 0
|
||||||
sudo systemctl start docker
|
|
||||||
sleep 2
|
|
||||||
if systemctl is-active --quiet docker; then
|
|
||||||
echo "[OK] Docker service started successfully via systemctl."
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "[ERROR] Failed to start Docker using systemctl."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
elif command -v service >/dev/null 2>&1; then
|
|
||||||
echo "[INFO] systemctl not found, trying to start Docker using service..."
|
|
||||||
sudo service docker start
|
|
||||||
sleep 2
|
|
||||||
if docker info >/dev/null 2>&1; then
|
|
||||||
echo "[OK] Docker service started successfully via service command."
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
echo "[ERROR] Failed to start Docker using service command."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "[ERROR] Neither systemctl nor service command found. Please start Docker manually."
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if command -v dnf &>/dev/null; then
|
||||||
|
sudo dnf install -y docker
|
||||||
|
sudo systemctl start docker
|
||||||
|
sudo systemctl enable docker
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v zypper &>/dev/null; then
|
||||||
|
sudo zypper install -y docker
|
||||||
|
sudo systemctl start docker
|
||||||
|
sudo systemctl enable docker
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v apk &>/dev/null; then
|
||||||
|
sudo apk add docker
|
||||||
|
sudo rc-update add docker boot
|
||||||
|
sudo service docker start
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v pacman &>/dev/null; then
|
||||||
|
sudo pacman -S --noconfirm docker
|
||||||
|
sudo systemctl start docker
|
||||||
|
sudo systemctl enable docker
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v brew &>/dev/null; then
|
||||||
|
brew install docker
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if command -v snap &>/dev/null; then
|
||||||
|
sudo snap install docker
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "ERROR: Unable to install Docker automatically. Please install Docker manually."
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user