feat: new file

This commit is contained in:
Daniel
2026-03-18 18:57:58 +08:00
commit d0ff049899
31 changed files with 1507 additions and 0 deletions

100
dev.sh Executable file
View File

@@ -0,0 +1,100 @@
#!/usr/bin/env sh
set -eu
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$ROOT_DIR"
MODE="${1:-up}"
if ! command -v docker >/dev/null 2>&1; then
echo "Docker 未安装或不可用。请先安装 Docker Desktop。" >&2
exit 1
fi
if ! docker info >/dev/null 2>&1; then
echo "Docker daemon 未启动。请先启动 Docker Desktop。" >&2
exit 1
fi
if ! command -v docker >/dev/null 2>&1 || ! docker compose version >/dev/null 2>&1; then
echo "docker compose 不可用,请升级 Docker Desktop。" >&2
exit 1
fi
if [ ! -f "backend/.env" ]; then
cp "backend/.env.example" "backend/.env"
echo "已生成 backend/.env请把 MYSQL_PASSWORD / OPENAI_API_KEY 改成你的值)"
fi
case "$MODE" in
up)
echo "启动中:构建并启动所有容器(随后将跟随日志,按 Ctrl+C 退出跟随)..."
docker compose up --build -d
;;
-d|detached)
echo "启动中:构建并后台启动所有容器..."
docker compose up --build -d
;;
down)
docker compose down
exit 0
;;
ps)
docker compose ps
exit 0
;;
logs)
docker compose logs --tail=200 backend frontend
exit 0
;;
follow|f)
docker compose logs -f --tail=200 backend frontend
exit 0
;;
*)
echo "用法:"
echo " sh dev.sh # 启动并跟随日志(默认)"
echo " sh dev.sh -d # 后台启动"
echo " sh dev.sh follow # 跟随日志"
echo " sh dev.sh logs # 打印最近日志"
echo " sh dev.sh ps # 查看容器状态"
echo " sh dev.sh down # 停止并清理"
exit 1
;;
esac
echo ""
echo "容器状态:"
docker compose ps
echo ""
echo "后端最近日志backendtail=120"
docker compose logs --tail=120 backend || true
echo ""
echo "前端最近日志frontendtail=120"
docker compose logs --tail=120 frontend || true
echo ""
echo "快速自检HTTP"
(
curl -fsS "http://localhost:8000/docs" >/dev/null 2>&1 && echo "- backend: OK (http://localhost:8000/docs)" || echo "- backend: FAIL (检查 backend 日志/数据库连通性)"
curl -fsS "http://localhost:3001" >/dev/null 2>&1 && echo "- frontend: OK (http://localhost:3001)" || echo "- frontend: FAIL (检查 frontend 日志)"
curl -fsS "http://localhost:3001/api/metrics/overview" >/dev/null 2>&1 && echo "- api-proxy: OK (/api/metrics/overview)" || echo "- api-proxy: FAIL (通常是 backend 500)"
) || true
echo ""
echo "已启动:"
echo "- 前端: http://localhost:3001"
echo "- 后端 Swagger: http://localhost:8000/docs"
echo "- Milvus: localhost:19530"
echo ""
echo "跟随日志sh dev.sh follow (或 docker compose logs -f --tail=200 backend frontend"
echo "停止docker compose down"
if [ "$MODE" = "up" ]; then
echo ""
echo "开始跟随日志Ctrl+C 可退出跟随,不会停止容器)..."
docker compose logs -f --tail=200 backend frontend
fi