Files
FastapiAdmin/build/start.sh
T
2024-12-10 17:39:26 +08:00

56 lines
1.5 KiB
Bash

#!/bin/bash
# 检查是否已经处于虚拟环境中
if [[ ":$VIRTUAL_ENV:" != *":/opt/model-ai/backend/venv:"* ]]; then
# 切换到目标目录
cd /opt/ || { echo "切换 /opt 目录失败"; exit 1; }
# 替换现有仓库
if [ -d "/opt/model-ai" ]; then
rm -rf /opt/model-ai
fi
# 克隆仓库
git clone git@gitee.com:tao__tao/model-ai.git || { echo "克隆仓库失败"; exit 1; }
# 进入后端目录
cd /opt/model-ai/backend || { echo "进入后端目录失败"; exit 1; }
# 创建虚拟环境
python3 -m venv venv || { echo "创建虚拟环境失败"; exit 1; }
# 激活虚拟环境
source ./venv/bin/activate || { echo "激活虚拟环境失败"; exit 1; }
fi
# 安装依赖
pip install -r requirements.txt || { echo "安装依赖失败"; exit 1; }
# 初始化应用
echo "开始初始化应用"
python main.py init || { echo "初始化应用失败"; exit 1; }
echo "应用初始化完成"
# 使用 nohup 在后台运行应用,并将输出重定向到日志文件
echo "开始启动应用"
nohup python main.py run > /opt/logs/main.log 2>&1 &
# 获取 nohup 的进程 ID
NOHUP_PID=$!
# 检查后台进程是否成功启动
if [ $? -eq 0 ]; then
# 将后台进程从当前 shell 会话中分离出来
echo "应用已启动,进程 ID: $NOHUP_PID"
# 等待一段时间,确保日志文件中有内容
sleep 3
# 打印日志文件的内容
cat /opt/logs/main.log
echo "应用已启动"
else
echo "启动应用失败"
exit 1
fi