#!/bin/bash restart_docker() { # 如果容器未运行,提示启动 local running_count=$(docker-compose -f ./docker-compose.yml ps -q | wc -l) if [ "$running_count" -eq 0 ]; then read -p "容器未启动,是否启动容器?(y/n): " choice case "$choice" in Y|y) docker-compose -f ./docker-compose.yml up -d return ;; *) echo "已取消启动" return ;; esac fi echo "正在重启容器..." docker-compose -f ./docker-compose.yml down docker-compose -f ./docker-compose.yml up -d } # 安装依赖 install_dependencies(){ local script_dir="$(cd "$(dirname "${BASH_SOURCE[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 } main(){ local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/bin" # 脚本文件夹路径 source "${script_dir}/utils/base.sh" # 显示菜单 echo "请选择一个操作:" echo "1. 一键部署" echo "2. 创建配置 / 重置配置" echo "3. 查看分享链接" echo "4. 启动容器" echo "5. 停止容器" echo "6. 更新镜像" echo "7. 修改端口" echo "8. 修改Reality目标域名" # 读取用户选择 read -p "输入您的选择: " choice # 根据用户选择执行相应的操作 case $choice in 1) # 一键部署 install_dependencies bash $script_dir/create_config.sh bash $script_dir/run.sh bash $script_dir/print_share_link.sh ;; 2) # 创建配置 / 重置配置 bash $script_dir/create_config.sh ;; 3) # 查看分享链接 check_config bash $script_dir/print_share_link.sh ;; 4) # 启动容器 bash $script_dir/run.sh bash $script_dir/print_share_link.sh ;; 5) # 停止容器 docker-compose -f ./docker-compose.yml down ;; 6) # 更新镜像 bash $script_dir/update_docker_images.sh ;; 7) # 修改端口 check_config bash $script_dir/update_port.sh restart_docker ;; 8) # 修改Reality目标域名 check_config bash $script_dir/update_reality_dest.sh restart_docker ;; *) echo "无效的选择, 请重新选择." ;; esac } main