addet docker script

This commit is contained in:
pika 2024-12-30 18:41:08 +01:00
parent 2d34c2e7e6
commit 8e108f45d7
3 changed files with 113 additions and 64 deletions

View file

@ -4,84 +4,126 @@
# Function to prompt the user for installation choice # Function to prompt the user for installation choice
choose_installation() { choose_installation() {
clear clear
printf "%b\n" "${YELLOW}Choose what to install:${RC}" printf "%b\n" "${YELLOW}Choose what to install:${RC}"
printf "%b\n" "1. ${YELLOW}Docker${RC}" printf "%b\n" "1. ${YELLOW}Docker${RC}"
printf "%b\n" "2. ${YELLOW}Docker Compose${RC}" printf "%b\n" "2. ${YELLOW}Docker Compose${RC}"
printf "%b\n" "3. ${YELLOW}Both${RC}" printf "%b\n" "3. ${YELLOW}Both${RC}"
printf "%b" "Enter your choice [1-3]: " printf "%b" "Enter your choice [1-3]: "
read -r CHOICE read -r CHOICE
case "$CHOICE" in case "$CHOICE" in
1) INSTALL_DOCKER=1; INSTALL_COMPOSE=0 ;; 1)
2) INSTALL_DOCKER=0; INSTALL_COMPOSE=1 ;; INSTALL_DOCKER=1
3) INSTALL_DOCKER=1; INSTALL_COMPOSE=1 ;; INSTALL_COMPOSE=0
*) printf "%b\n" "${RED}Invalid choice. Exiting.${RC}"; exit 1 ;; ;;
esac 2)
INSTALL_DOCKER=0
INSTALL_COMPOSE=1
;;
3)
INSTALL_DOCKER=1
INSTALL_COMPOSE=1
;;
*)
printf "%b\n" "${RED}Invalid choice. Exiting.${RC}"
exit 1
;;
esac
} }
install_docker() { install_docker() {
printf "%b\n" "${YELLOW}Installing Docker...${RC}" printf "%b\n" "${YELLOW}Installing Docker...${RC}"
case "$PACKAGER" in case "$PACKAGER" in
apt-get|nala) apt-get | nala)
curl -fsSL https://get.docker.com | sh curl -fsSL https://get.docker.com | sh
;; ;;
zypper) zypper)
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install docker "$ESCALATION_TOOL" "$PACKAGER" --non-interactive install docker
"$ESCALATION_TOOL" systemctl enable docker "$ESCALATION_TOOL" systemctl enable docker
"$ESCALATION_TOOL" systemctl start docker "$ESCALATION_TOOL" systemctl start docker
;; ;;
pacman) pacman)
"$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm docker "$ESCALATION_TOOL" "$PACKAGER" -S --noconfirm docker
"$ESCALATION_TOOL" systemctl enable docker "$ESCALATION_TOOL" systemctl enable docker
"$ESCALATION_TOOL" systemctl start docker "$ESCALATION_TOOL" systemctl start docker
;; ;;
*) *)
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}" printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
exit 1 exit 1
;; ;;
esac esac
} }
install_docker_compose() { install_docker_compose() {
printf "%b\n" "${YELLOW}Installing Docker Compose...${RC}" printf "%b\n" "${YELLOW}Installing Docker Compose...${RC}"
case "$PACKAGER" in case "$PACKAGER" in
apt-get|nala) apt-get | nala)
"$ESCALATION_TOOL" "$PACKAGER" install -y docker-compose-plugin "$ESCALATION_TOOL" "$PACKAGER" install -y docker-compose-plugin
;; ;;
zypper) zypper)
"$ESCALATION_TOOL" "$PACKAGER" --non-interactive install docker-compose "$ESCALATION_TOOL" "$PACKAGER" --non-interactive install docker-compose
;; ;;
pacman) pacman)
"$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm docker-compose "$ESCALATION_TOOL" "$PACKAGER" -S --needed --noconfirm docker-compose
;; ;;
*) *)
printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}" printf "%b\n" "${RED}Unsupported package manager: ""$PACKAGER""${RC}"
exit 1 exit 1
;; ;;
esac esac
} }
install_components() { install_components() {
choose_installation choose_installation
if [ "$INSTALL_DOCKER" -eq 1 ]; then if [ "$INSTALL_DOCKER" -eq 1 ]; then
if ! command_exists docker; then if ! command_exists docker; then
install_docker install_docker
else else
printf "%b\n" "${GREEN}Docker is already installed.${RC}" printf "%b\n" "${GREEN}Docker is already installed.${RC}"
fi
fi fi
fi
if [ "$INSTALL_COMPOSE" -eq 1 ]; then if [ "$INSTALL_COMPOSE" -eq 1 ]; then
if ! command_exists docker-compose || ! command_exists docker compose version; then if ! command_exists docker-compose || ! command_exists docker compose version; then
install_docker_compose install_docker_compose
else else
printf "%b\n" "${GREEN}Docker Compose is already installed.${RC}" printf "%b\n" "${GREEN}Docker Compose is already installed.${RC}"
fi
fi fi
fi
}
init_groups() {
clear
if command_exists usermod; then
printf "%b\n" "${YELLOW}Do you want to add $(whoami) to the docker group?:${RC}"
printf "%b" "Enter your choice [Y/n]: "
read -r CHOICE_2
case "$CHOICE_2" in
N | n)
return 0
;;
*)
"$ESCALATION_TOOL" usermod -aG docker "$(whoami)"
;;
esac
else
printf "%b\n" "${RED}The command 'usermod' does not exist!${RC}"
fi
}
setup_autostart() {
if command_exists systemctl; then
"$ESCALATION_TOOL" systemctl enable --now docker
else
printf "%b\n" "${RED}The command 'systemctl' does not exist!${RC}"
fi
} }
checkEnv checkEnv
checkEscalationTool checkEscalationTool
install_components install_components
init_groups

View file

@ -13,6 +13,12 @@ description = "Flatpak is a universal application sandbox for Linux that uses is
script = "setup-flatpak.sh" script = "setup-flatpak.sh"
task_list = "I" task_list = "I"
[[data]]
name = "Docker"
description = "Installs docker and handles the group permissions correctly"
script = "docker-setup.sh"
task_list = "I"
[[data]] [[data]]
name = "github-desktop" name = "github-desktop"
description = "GitHub Desktop is a free Git client that allows you to manage your GitHub repositories on your desktop." description = "GitHub Desktop is a free Git client that allows you to manage your GitHub repositories on your desktop."

View file

@ -30,7 +30,8 @@ task_list = "I"
[[data.entries]] [[data.entries]]
name = "Blackarch setup" name = "Blackarch setup"
description = "You can install blackarch repositories and packages through this script, if your on arch already (which you should, if you're seeing this)" description = "You can install blackarch repositories and packages through this script, if your on arch already (which you should, if you're seeing this)"
script = "arch/blackarch.sh" = "I" script = "arch/blackarch.sh"
task_list = "I"
[[data]] [[data]]
name = "Debian" name = "Debian"