Files
Crawl_demo/dev.sh
2026-03-18 18:57:58 +08:00

101 lines
2.9 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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