diff --git a/bin/utils/base.sh b/bin/utils/base.sh index 07fbf45..ccc0f8f 100644 --- a/bin/utils/base.sh +++ b/bin/utils/base.sh @@ -18,32 +18,69 @@ get_package_manager(){ } # 检查 jq 是否已安装 -check_jq(){ - if command -v jq &> /dev/null; then - return 0 # jq 已安装,返回成功 - fi - - echo "jq 未安装,正在安装..." - install_jq - +check_jq() { + if command -v jq >/dev/null 2>&1; then + echo "jq 已安装,版本:$(jq --version)" + return 0 + else + echo "jq 未安装" + return 1 + fi } +# 检查 Docker 是否已安装 +check_docker() { + if command -v docker >/dev/null 2>&1; then + echo "Docker 已安装,版本:$(docker --version)" + return 0 + else + echo "Docker 未安装" + return 1 + fi +} +# 检查 docker-compose 是否已安装 +check_docker_compose() { + if command -v docker-compose >/dev/null 2>&1; then + echo "docker-compose 已安装,版本:$(docker-compose --version)" + return 0 + elif docker compose version >/dev/null 2>&1; then + echo "Docker 内置 compose 已安装,版本:$(docker compose version --short)" + return 0 + else + echo "docker-compose 未安装" + return 1 + fi +} + +# 安装jq install_jq(){ - local package_manager=$(get_package_manager) # 获取包管理器 - if [[ -z "$package_manager" ]]; then - echo "无法识别系统包管理器" - return 1 # 无法识别包管理器 - fi + local package_manager=$(get_package_manager) # 获取包管理器 + if [[ -z "$package_manager" ]]; then + echo "无法识别系统包管理器" + return 1 # 无法识别包管理器 + fi - if [[ "$package_manager" == "apt-get" ]]; then - sudo apt-get install -y jq - elif [[ "$package_manager" == "yum" ]]; then - sudo yum install -y jq - else - echo "未知的系统包管理器" - return 1 # 未知的包管理器 - fi + if [[ "$package_manager" == "apt-get" ]]; then + sudo apt-get install -y jq + elif [[ "$package_manager" == "yum" ]]; then + sudo yum install -y jq + else + echo "未知的系统包管理器" + return 1 # 未知的包管理器 + fi } +# 安装docker +install_docker(){ + echo 安装docker... + curl -fsSL https://get.docker.com | bash -s docker +} + +# 安装docker-compose +install_docker_compose(){ + echo 安装docker-compose... + wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-x86_64 + chmod +x /usr/local/bin/docker-compose +}