You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
1.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/bin/bash
# ============================================================
# 灵枢 - 保密服务器一键部署脚本(完全离线,无需联网)
# ============================================================
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo "========================================"
echo " 灵枢智能任务平台 - 服务器离线部署"
echo "========================================"
# 检查 Docker 是否安装
if ! command -v docker &> /dev/null; then
echo "[错误] 未检测到 Docker请先在服务器上安装 Docker Engine"
echo " 离线安装包请向系统管理员申请 docker-ce 离线 rpm/deb 包"
exit 1
fi
# 检查 docker compose
if ! docker compose version &> /dev/null 2>&1; then
echo "[错误] 未检测到 docker compose (v2),请安装 Docker Compose V2 插件"
exit 1
fi
# 1. 导入镜像(无需联网)
echo ""
echo "[1/3] 导入 Docker 镜像..."
echo " 正在导入 mysql:8.0 ..."
docker load -i "$SCRIPT_DIR/mysql_8.0.tar.gz"
echo " 正在导入 lingshu_app ..."
docker load -i "$SCRIPT_DIR/lingshu_app.tar.gz"
# 2. 解压代码
echo ""
echo "[2/3] 解压项目代码..."
mkdir -p /opt/lingshu
tar -xzf "$SCRIPT_DIR/lingshu_code.tar.gz" -C /opt/lingshu
cd /opt/lingshu
# 3. 检查并处理 3306 端口冲突
echo ""
echo "[3/3] 检查端口占用并启动服务..."
if ss -tlnp 2>/dev/null | grep -q ':3306 ' || netstat -tlnp 2>/dev/null | grep -q ':3306 '; then
echo " [警告] 3306 端口已被占用,自动切换为 3307 端口映射"
sed -i 's/"3306:3306"/"3307:3306"/' /opt/lingshu/docker-compose.yml
fi
# 启动(不拉取镜像)
docker compose up -d
echo ""
echo "========================================"
echo " 部署完成!"
echo " 访问地址: http://$(hostname -I | awk '{print $1}'):5000"
echo " 默认账号: admin / admin123"
echo "========================================"