#!/bin/bash install(){ local script_dir="$(cd "$(dirname "$0")"; pwd)/bin" # 脚本所在目录 source "${script_dir}/utils/base.sh" if ! command -v curl >/dev/null 2>&1; then install_package curl fi if ! command -v wget >/dev/null 2>&1; then install_package wget fi if ! command -v jq >/dev/null 2>&1; then echo 安装jq... install_package jq fi if ! command -v docker >/dev/null 2>&1; then echo 安装docker... curl -fsSL https://get.docker.com | bash -s docker fi if ! command -v docker-compose >/dev/null 2>&1; then 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 fi } check_config_file(){ local script_dir="$(cd "$(dirname "$0")"; pwd)/bin" # 脚本所在目录 local config_file="$script_dir/../config/config.json" # 检查配置文件是否存在 if [ ! -e "$config_file" ]; then echo "配置文件不存在, 请先生成配置文件." exit 1 fi # 检查配置文件是否为有效的JSON格式 if jq '.' "$config_file" >/dev/null 2>&1; then echo "有效的JSON文件" else echo "无效的JSON文件" fi } main(){ local script_dir="$(cd "$(dirname "$0")"; pwd)/bin" # 脚本所在目录 source "${script_dir}/utils/base.sh" # 检查bash环境是否安装 check_bash_installed # 显示菜单 echo "请选择一个操作:" echo "1. 一键部署" echo "2. 生成配置 / 重置配置" echo "3. 查看分享链接" echo "4. 修改域名" echo "5. 修改端口" echo "6. 启动容器" echo "7. 停止容器" echo "8. 更新镜像" # 读取用户选择 read -p "输入您的选择: " choice # 根据用户选择执行相应的操作 case $choice in 1) # 一键部署 install bash ./bin/create_config.sh bash ./bin/run.sh ;; 2) # 生成配置 / 重置配置 bash ./bin/create_config.sh ;; 3) # 查看分享链接 check_config_file bash ./bin/print_share_link.sh ;; 4) # 修改域名 check_config_file bash ./bin/update_domain.sh ;; 5) # 修改端口 check_config_file bash ./bin/update_port.sh ;; 6) # 启动容器 check_config_file bash ./bin/run.sh ;; 7) # 停止容器 docker-compose -f ./docker-compose.yml down ;; 8) # 更新镜像 bash ./bin/update_docker_images.sh ;; *) echo "无效的选择, 请重新选择." ;; esac } main