#!/bin/bash set -e echo "🛠️ Detecting OS..." OS=$(uname -s) install_docker_linux() { echo "🔧 Installing Docker on Linux..." # Remove old versions sudo apt-get remove -y docker docker-engine docker.io containerd runc || true # Install dependencies sudo apt-get update sudo apt-get install -y \ ca-certificates \ curl \ gnupg \ lsb-release # Add Docker's official GPG key sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # Add Docker's repo echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # Install Docker and Compose sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # Enable and start Docker sudo systemctl enable docker sudo systemctl start docker # Add user to docker group sudo usermod -aG docker "$USER" echo "✅ Docker installed. Please log out and log back in for docker group to take effect." } install_docker_windows_message() { echo "🪟 Detected Windows system." echo "👉 Please install Docker Desktop from: https://www.docker.com/products/docker-desktop/" echo "It includes Docker Engine + Compose and integrates with WSL2." echo "" echo "Make sure to:" echo " - Enable WSL2 backend during install" echo " - Share your drives if needed (for volume mounting)" } case "$OS" in Linux) install_docker_linux ;; Darwin) echo "🍏 macOS detected. Please use Docker Desktop: https://www.docker.com/products/docker-desktop" ;; MINGW*|CYGWIN*|MSYS*|Windows_NT) install_docker_windows_message ;; *) echo "❌ Unsupported OS: $OS" exit 1 ;; esac