From 86bc84d4034308a9609bd5bfcc162789748c3d5f Mon Sep 17 00:00:00 2001 From: Metin Bektas <30674934+methbkts@users.noreply.github.com> Date: Fri, 12 Jan 2024 14:57:37 +0100 Subject: [PATCH] upgrade to Docker Compose V2 --- README.org | 4 ++-- docker.sh | 5 +---- docs.org | 32 ++++++++++++++++++++++---------- install.sh | 30 +++++++++++++++++++++--------- yams | 2 +- 5 files changed, 47 insertions(+), 26 deletions(-) diff --git a/README.org b/README.org index a9f1df3..ea83b69 100644 --- a/README.org +++ b/README.org @@ -49,8 +49,8 @@ In no particular order: :ID: 01577a0a-852e-481a-b9b3-791b68594f96 :END: You need to have: -- [[https://www.docker.com/][docker]] -- [[https://docs.docker.com/compose/][docker-compose]] +- [[https://www.docker.com/][Docker]] +- [[https://docs.docker.com/compose/][Docker Compose]] If you haven't installed them, don't worry! The script will attempt to run both installations (it only works in Debian and Ubuntu!) diff --git a/docker.sh b/docker.sh index 9688c30..b7cfb2a 100755 --- a/docker.sh +++ b/docker.sh @@ -18,11 +18,8 @@ echo \ sudo apt update -sudo apt install -y docker-ce docker-ce-cli containerd.io +sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin sudo usermod -aG docker $USER -sudo curl -L https://github.com/docker/compose/releases/download/v2.15.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose -sudo chmod +x /usr/local/bin/docker-compose - sudo su $USER --session-command "bash install.sh" diff --git a/docs.org b/docs.org index 2c6b3b6..5c4d0ec 100644 --- a/docs.org +++ b/docs.org @@ -106,22 +106,35 @@ send_error_message() { :ID: e7d01eeb-c7ef-42ff-b60d-010be30bc6a8 :END: -This function verifies that the dependencies are installed. ~Docker~ and ~docker-compose~ are required +This function verifies that the dependencies are installed. ~Docker~ and ~Docker Compose~ are required for YAMS to work. #+begin_src bash -check_dependencides() { - if command -v "$1" &> /dev/null; then - send_success_message "$1 exists ✅ " +check_dependencies() { + if command -v docker &> /dev/null; then + send_success_message "docker exists ✅ " + if docker compose version &> /dev/null; then + send_success_message "docker compose exists ✅ " + else + echo -e $(printf "\e[31m ⚠️ docker compose not found! ⚠️\e[0m") + read -p "Do you want YAMS to install Docker Compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker + install_docker=${install_docker:-"n"} + + if [ "$install_docker" == "y" ]; then + bash ./docker.sh + else + send_error_message "Install Docker Compose and come back later!" + fi + fi else - echo -e $(printf "\e[31m ⚠️ $1 not found! ⚠️\e[0m") - read -p "Do you want YAMS to install docker and docker-compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker + echo -e $(printf "\e[31m ⚠️ docker not found! ⚠️\e[0m") + read -p "Do you want YAMS to install Docker and Docker Compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker install_docker=${install_docker:-"n"} if [ "$install_docker" == "y" ]; then bash ./docker.sh else - send_error_message "Install docker and docker-compose and come back later!" + send_error_message "Install Docker and Docker Compose and come back later!" fi fi } @@ -169,8 +182,7 @@ running_services_location() { echo "Checking prerequisites..." -check_dependencides "docker" -check_dependencides "docker-compose" +check_dependencies if [[ "$EUID" = 0 ]]; then send_error_message "YAMS has to run without sudo! Please, run it again with regular permissions" @@ -422,7 +434,7 @@ send_success_message "Everything installed correctly! 🎉" echo "Running the server..." echo "This is going to take a while..." -docker-compose -f "$filename" up -d +docker compose -f "$filename" up -d #+end_src * Final steps :PROPERTIES: diff --git a/install.sh b/install.sh index aa872ae..98f191d 100644 --- a/install.sh +++ b/install.sh @@ -32,18 +32,31 @@ send_error_message() { exit 255 } -check_dependencides() { - if command -v "$1" &> /dev/null; then - send_success_message "$1 exists ✅ " +check_dependencies() { + if command -v docker &> /dev/null; then + send_success_message "docker exists ✅ " + if docker compose version &> /dev/null; then + send_success_message "docker compose exists ✅ " + else + echo -e $(printf "\e[31m ⚠️ docker compose not found! ⚠️\e[0m") + read -p "Do you want YAMS to install Docker Compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker + install_docker=${install_docker:-"n"} + + if [ "$install_docker" == "y" ]; then + bash ./docker.sh + else + send_error_message "Install Docker Compose and come back later!" + fi + fi else - echo -e $(printf "\e[31m ⚠️ $1 not found! ⚠️\e[0m") - read -p "Do you want YAMS to install docker and docker-compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker + echo -e $(printf "\e[31m ⚠️ docker not found! ⚠️\e[0m") + read -p "Do you want YAMS to install Docker and Docker Compose? IT ONLY WORKS ON DEBIAN AND UBUNTU! [y/N]: " install_docker install_docker=${install_docker:-"n"} if [ "$install_docker" == "y" ]; then bash ./docker.sh else - send_error_message "Install docker and docker-compose and come back later!" + send_error_message "Install Docker and Docker Compose and come back later!" fi fi } @@ -74,8 +87,7 @@ running_services_location() { echo "Checking prerequisites..." -check_dependencides "docker" -check_dependencides "docker-compose" +check_dependencies if [[ "$EUID" = 0 ]]; then send_error_message "YAMS has to run without sudo! Please, run it again with regular permissions" @@ -249,7 +261,7 @@ send_success_message "Everything installed correctly! 🎉" echo "Running the server..." echo "This is going to take a while..." -docker-compose -f "$filename" up -d +docker compose -f "$filename" up -d echo -e "\nWe need your sudo password to install the YAMS CLI and configure permissions..." diff --git a/yams b/yams index c18c658..008d079 100755 --- a/yams +++ b/yams @@ -2,7 +2,7 @@ set -euo pipefail -dc="docker-compose -f -f " +dc="docker compose -f -f " install_directory="" option=${1:-"--help"} -- 2.39.5