From 4c99a1c8bd245996c6a598004919cda95ec5b636 Mon Sep 17 00:00:00 2001 From: Thuan Bui Date: Thu, 2 Jan 2025 09:52:52 +0900 Subject: [PATCH] Check Docker is installed or not --- kazewp.sh | 22 ++++++++++++++++++++-- lib/docker.sh | 24 ++++++++++++++++++++++++ lib/utils.sh | 4 ++++ 3 files changed, 48 insertions(+), 2 deletions(-) diff --git a/kazewp.sh b/kazewp.sh index 40cc09d..c5d9dfc 100755 --- a/kazewp.sh +++ b/kazewp.sh @@ -12,6 +12,24 @@ source "${SCRIPT_DIR}/lib/docker.sh" source "${SCRIPT_DIR}/lib/caddy.sh" source "${SCRIPT_DIR}/lib/wordpress.sh" + +# Check if Docker is installed +if ! command_exists docker; then + install_docker + + # Verify installation + if ! command_exists docker; then + echo "Docker installation failed. Please install Docker manually." + exit 1 + fi +fi + +# Check if Docker service is running +if ! systemctl is-active --quiet docker; then + echo "Docker service is not running. Starting Docker..." + sudo systemctl start docker +fi + # Function to install a new WordPress site install_site() { @@ -243,11 +261,11 @@ case "$1" in ;; *) - echo "KazeW - PWordPress Site Management Script" + echo "KazeWP - WordPress Site Management Script" echo "Usage:" echo " $0 install - Install a new WordPress site" echo " $0 list - List all installed WordPress sites" - echo " $0 delete - Delete a WordPress site" + echo " $0 delete - Delete a WordPress site" echo " $0 delete all - Delete everything" exit 1 ;; diff --git a/lib/docker.sh b/lib/docker.sh index 15bf450..a24f478 100644 --- a/lib/docker.sh +++ b/lib/docker.sh @@ -1,5 +1,29 @@ #!/bin/bash +# Function to install Docker +install_docker() { + echo -n "Docker is not installed. Do you want to install Docker? (y/n): " + read answer + + if [ "$answer" != "${answer#[Yy]}" ]; then + echo "Installing Docker..." + curl -fsSL https://get.docker.com -o get-docker.sh > /dev/null 2>&1 + sudo sh get-docker.sh > /dev/null 2>&1 + rm get-docker.sh > /dev/null 2>&1 + + # Add current user to docker group + sudo usermod -aG docker $USER + + #newgrp docker + + echo "Docker has been installed successfully!" + else + echo "Docker installation skipped. Please install Docker manually to use this script." + exit 1 + fi +} + + check_container_running() { docker ps --format '{{.Names}}' | grep -q "^$1$" return $? diff --git a/lib/utils.sh b/lib/utils.sh index 0426532..fa43727 100644 --- a/lib/utils.sh +++ b/lib/utils.sh @@ -5,6 +5,10 @@ function generate_password() { } export -f generate_password +command_exists() { + command -v "$1" >/dev/null 2>&1 +} + function save_credentials() { local WP_PROJECT_DIR=$1 local DOMAIN=$2