diff --git a/script/docker/init.sh b/script/docker/init.sh index 43fa67e..31c8505 100755 --- a/script/docker/init.sh +++ b/script/docker/init.sh @@ -1,6 +1,33 @@ #!/bin/bash set -e +# docker环境预安装 +REGEX=("debian" "ubuntu" "centos|red hat|kernel|oracle linux|alma|rocky" "'amazon linux'" "fedora" "arch") +RELEASE=("Debian" "Ubuntu" "CentOS" "CentOS" "Fedora" "Arch") +PACKAGE_UPDATE=("! apt-get update && apt-get --fix-broken install -y && apt-get update" "apt-get update" "yum -y update" "yum -y update" "yum -y update" "pacman -Sy") +PACKAGE_INSTALL=("apt-get -y install" "apt-get -y install" "yum -y install" "yum -y install" "yum -y install" "pacman -Sy --noconfirm --needed") +PACKAGE_REMOVE=("apt-get -y remove" "apt-get -y remove" "yum -y remove" "yum -y remove" "yum -y remove" "pacman -Rsc --noconfirm") +PACKAGE_UNINSTALL=("apt-get -y autoremove" "apt-get -y autoremove" "yum -y autoremove" "yum -y autoremove" "yum -y autoremove" "") +CMD=("$(grep -i pretty_name /etc/os-release 2>/dev/null | cut -d \" -f2)" "$(hostnamectl 2>/dev/null | grep -i system | cut -d : -f2)" "$(lsb_release -sd 2>/dev/null)" "$(grep -i description /etc/lsb-release 2>/dev/null | cut -d \" -f2)" "$(grep . /etc/redhat-release 2>/dev/null)" "$(grep . /etc/issue 2>/dev/null | cut -d \\ -f1 | sed '/^[ ]*$/d')" "$(grep -i pretty_name /etc/os-release 2>/dev/null | cut -d \" -f2)") +SYS="${CMD[0]}" +[[ -n $SYS ]] || exit 1 +for ((int = 0; int < ${#REGEX[@]}; int++)); do + if [[ $(echo "$SYS" | tr '[:upper:]' '[:lower:]') =~ ${REGEX[int]} ]]; then + SYSTEM="${RELEASE[int]}" + [[ -n $SYSTEM ]] && break + fi +done +if ! systemctl is-active docker >/dev/null 2>&1; then + if [ $SYSTEM = "CentOS" ]; then + ${PACKAGE_INSTALL[int]} yum-utils + yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo && + ${PACKAGE_INSTALL[int]} docker-ce docker-ce-cli containerd.io + systemctl enable --now docker + else + ${PACKAGE_INSTALL[int]} docker.io + fi +fi + # 脚本根目录 SCRIPT_FOLDER=lottery # 设置环境变量文件