#!/bin/bash # 服务部署脚本 # 用于停止旧服务并启动新服务 echo "=== 服务部署脚本 ===" echo "此脚本将停止当前服务并重新启动服务" echo "" # 读取sudo密码 echo -n "请输入sudo密码: " read -s SUDO_PASSWORD echo "" echo "" # 检查密码是否为空 if [ -z "$SUDO_PASSWORD" ]; then echo "错误: 密码不能为空" exit 1 fi echo "正在停止当前服务..." # 使用expect或者直接传递密码给sudo echo "$SUDO_PASSWORD" | sudo -S docker compose down --rmi all if [ $? -eq 0 ]; then echo "✓ 服务已成功停止" else echo "✗ 停止服务失败,请检查密码是否正确" exit 1 fi echo "" echo "正在启动新服务..." echo "$SUDO_PASSWORD" | sudo -S docker compose up -d if [ $? -eq 0 ]; then echo "✓ 服务启动成功" echo "" echo "服务状态:" echo "$SUDO_PASSWORD" | sudo -S docker compose ps else echo "✗ 启动服务失败" exit 1 fi echo "" echo "当前运行的Docker容器:" echo "$SUDO_PASSWORD" | sudo -S docker ps echo "" echo "=== 部署完成 ==="