Explorar o código

Fully migrate to Docker Compose plugin and ensure it is installed and up to date at each run of start.sh

Seth For Privacy %!s(int64=2) %!d(string=hai) anos
pai
achega
f1f801796f
Modificáronse 4 ficheiros con 62 adicións e 18 borrados
  1. 3 3
      scripts/app.sh
  2. 52 8
      scripts/configure.sh
  3. 6 6
      scripts/start.sh
  4. 1 1
      scripts/stop.sh

+ 3 - 3
scripts/app.sh

@@ -28,7 +28,7 @@ Commands:
     uninstall                  Removes images and destroys all data for an app
     uninstall                  Removes images and destroys all data for an app
     stop                       Stops an installed app
     stop                       Stops an installed app
     start                      Starts an installed app
     start                      Starts an installed app
-    compose                    Passes all arguments to docker-compose
+    compose                    Passes all arguments to Docker Compose
     ls-installed               Lists installed apps
     ls-installed               Lists installed apps
 EOF
 EOF
 }
 }
@@ -129,7 +129,7 @@ compose() {
   export ROOT_FOLDER_HOST="${root_folder_host}"
   export ROOT_FOLDER_HOST="${root_folder_host}"
   export ROOT_FOLDER="${ROOT_FOLDER}"
   export ROOT_FOLDER="${ROOT_FOLDER}"
 
 
-  # Docker-compose does not support multiple env files
+  # Docker Compose does not support multiple env files
   # --env-file "${env_file}" \
   # --env-file "${env_file}" \
 
 
   docker-compose \
   docker-compose \
@@ -209,7 +209,7 @@ if [[ "$command" = "start" ]]; then
   exit
   exit
 fi
 fi
 
 
-# Passes all arguments to docker-compose
+# Passes all arguments to Docker Compose
 if [[ "$command" = "compose" ]]; then
 if [[ "$command" = "compose" ]]; then
   compose "${app}" ${args}
   compose "${app}" ${args}
   exit
   exit

+ 52 - 8
scripts/configure.sh

@@ -66,6 +66,38 @@ function install_docker() {
   fi
   fi
 }
 }
 
 
+function update_docker() {
+  local os="${1}"
+  echo "Updating Docker for os ${os}" >/dev/tty
+
+  if [[ "${os}" == "debian" ]]; then
+    sudo apt-get update
+    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
+    return 0
+  elif [[ "${os}" == "ubuntu" || "${os}" == "pop" ]]; then
+    sudo apt-get update
+    sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
+    return 0
+  elif [[ "${os}" == "centos" ]]; then
+    sudo yum install -y --allowerasing docker-ce docker-ce-cli containerd.io docker-compose-plugin
+    return 0
+  elif [[ "${os}" == "fedora" ]]; then
+    sudo dnf -y install docker-ce docker-ce-cli containerd.io docker-compose-plugin
+    return 0
+  elif [[ "${os}" == "arch" ]]; then
+    sudo pacman -Sy --noconfirm docker docker-compose
+
+    if ! command -v crontab >/dev/null; then
+      sudo pacman -Sy --noconfirm cronie
+      systemctl enable --now cronie.service
+    fi
+
+    return 0
+  else
+    return 1
+  fi
+}
+
 function install_jq() {
 function install_jq() {
   local os="${1}"
   local os="${1}"
   echo "Installing jq for os ${os}" >/dev/tty
   echo "Installing jq for os ${os}" >/dev/tty
@@ -92,20 +124,37 @@ OS="$(cat /etc/[A-Za-z]*[_-][rv]e[lr]* | grep "^ID=" | cut -d= -f2 | uniq | tr '
 SUB_OS="$(cat /etc/[A-Za-z]*[_-][rv]e[lr]* | grep "^ID_LIKE=" | cut -d= -f2 | uniq | tr '[:upper:]' '[:lower:]' | tr -d '"')"
 SUB_OS="$(cat /etc/[A-Za-z]*[_-][rv]e[lr]* | grep "^ID_LIKE=" | cut -d= -f2 | uniq | tr '[:upper:]' '[:lower:]' | tr -d '"')"
 
 
 if command -v docker >/dev/null; then
 if command -v docker >/dev/null; then
-  echo "Docker is already installed"
+  echo "Docker is already installed, ensuring Docker is fully up to date"
+
+  update_docker "${OS}"
+  docker_result=$?
+
+  if [[ docker_result -eq 0 ]]; then
+    echo "Docker is fully up to date"
+  else
+    echo "Your system ${OS} is not supported trying with sub_os ${SUB_OS}"
+    install_docker "${SUB_OS}"
+    docker_sub_result=$?
+
+    if [[ docker_sub_result -eq 0 ]]; then
+      echo "Docker is fully up to date"
+    else
+      echo "Your system ${SUB_OS} is not supported please update Docker manually"
+      exit 1
+    fi
 else
 else
   install_docker "${OS}"
   install_docker "${OS}"
   docker_result=$?
   docker_result=$?
 
 
   if [[ docker_result -eq 0 ]]; then
   if [[ docker_result -eq 0 ]]; then
-    echo "docker installed"
+    echo "Docker installed"
   else
   else
     echo "Your system ${OS} is not supported trying with sub_os ${SUB_OS}"
     echo "Your system ${OS} is not supported trying with sub_os ${SUB_OS}"
     install_docker "${SUB_OS}"
     install_docker "${SUB_OS}"
     docker_sub_result=$?
     docker_sub_result=$?
 
 
     if [[ docker_sub_result -eq 0 ]]; then
     if [[ docker_sub_result -eq 0 ]]; then
-      echo "docker installed"
+      echo "Docker installed"
     else
     else
       echo "Your system ${SUB_OS} is not supported please install docker manually"
       echo "Your system ${SUB_OS} is not supported please install docker manually"
       exit 1
       exit 1
@@ -113,11 +162,6 @@ else
   fi
   fi
 fi
 fi
 
 
-if ! command -v docker-compose >/dev/null; then
-  sudo curl -L "https://github.com/docker/compose/releases/download/v2.3.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
-  sudo chmod +x /usr/local/bin/docker-compose
-fi
-
 if ! command -v jq >/dev/null; then
 if ! command -v jq >/dev/null; then
   install_jq "${OS}"
   install_jq "${OS}"
   jq_result=$?
   jq_result=$?

+ 6 - 6
scripts/start.sh

@@ -225,16 +225,16 @@ bash "${ROOT_FOLDER}/scripts/system-info.sh"
 if [[ ! $ci == "true" ]]; then
 if [[ ! $ci == "true" ]]; then
 
 
   if [[ $rc == "true" ]]; then
   if [[ $rc == "true" ]]; then
-    docker-compose -f docker-compose.rc.yml --env-file "${ROOT_FOLDER}/.env" pull
-    # Run docker-compose
-    docker-compose -f docker-compose.rc.yml --env-file "${ROOT_FOLDER}/.env" up --detach --remove-orphans --build || {
+    docker compose -f docker-compose.rc.yml --env-file "${ROOT_FOLDER}/.env" pull
+    # Run docker compose
+    docker compose -f docker-compose.rc.yml --env-file "${ROOT_FOLDER}/.env" up --detach --remove-orphans --build || {
       echo "Failed to start containers"
       echo "Failed to start containers"
       exit 1
       exit 1
     }
     }
   else
   else
-    docker-compose --env-file "${ROOT_FOLDER}/.env" pull
-    # Run docker-compose
-    docker-compose --env-file "${ROOT_FOLDER}/.env" up --detach --remove-orphans --build || {
+    docker compose --env-file "${ROOT_FOLDER}/.env" pull
+    # Run docker compose
+    docker compose --env-file "${ROOT_FOLDER}/.env" up --detach --remove-orphans --build || {
       echo "Failed to start containers"
       echo "Failed to start containers"
       exit 1
       exit 1
     }
     }

+ 1 - 1
scripts/stop.sh

@@ -37,4 +37,4 @@ done
 
 
 echo "Stopping Docker services..."
 echo "Stopping Docker services..."
 echo
 echo
-docker-compose down --remove-orphans --rmi local
+docker compose down --remove-orphans --rmi local