feat: new file
This commit is contained in:
100
dev.sh
Executable file
100
dev.sh
Executable 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 "后端最近日志(backend,tail=120):"
|
||||
docker compose logs --tail=120 backend || true
|
||||
|
||||
echo ""
|
||||
echo "前端最近日志(frontend,tail=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
|
||||
|
||||
Reference in New Issue
Block a user