diff --git a/README.md b/README.md index 87a8631..a947060 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,8 @@ EMBEDDING_MODEL=Qwen3-Embedding-0.6B docker compose -f docker-compose.dev.yml up -d pg # 首次:vector 扩展由应用自动 CREATE(本地 cyrene 用户为 superuser) ``` -> 不用 PG 可跳过;SQLite 默认即用。 +> 不用 PG 可跳过;SQLite 默认即用。若 Docker 未安装 compose 插件(部分精简版 29.x 只有 `docker run`), +> `scripts/dev-up.sh` 会自动回退 `docker run` 拉起 `cyrene-pg`,无需手动处理。 ### 4. 本地 embedding(llama.cpp + Qwen3 GGUF,走 Vulkan/GPU) ```bash diff --git a/scripts/dev-up.sh b/scripts/dev-up.sh index 390b158..0b75af6 100755 --- a/scripts/dev-up.sh +++ b/scripts/dev-up.sh @@ -16,7 +16,23 @@ cd "$REPO" echo "==> [1/4] PostgreSQL + pgvector (docker)" if command -v docker >/dev/null 2>&1; then - docker compose -f docker-compose.dev.yml up -d pg || echo " (docker compose up pg 失败,忽略继续——若未用 PG 可跳过)" + # PG 已在跑则跳过 + if curl -s --max-time 2 "http://127.0.0.1:5432" >/dev/null 2>&1 || docker ps --format '{{.Names}}' 2>/dev/null | grep -q '^cyrene-pg$'; then + echo " cyrene-pg 已在运行 (:5432),跳过" + else + # 有 compose 插件用 compose,否则回退 docker run + if docker compose version >/dev/null 2>&1; then + docker compose -f docker-compose.dev.yml up -d pg + else + echo " (docker compose 插件不可用,回退 docker run 拉起 cyrene-pg)" + docker run -d --name cyrene-pg \ + -e POSTGRES_USER=cyrene -e POSTGRES_PASSWORD=cyrene_pass -e POSTGRES_DB=cyrene_ai \ + -p 5432:5432 -v cyrene_pgdata:/var/lib/postgresql/data \ + pgvector/pgvector:pg16 >/dev/null 2>&1 \ + && echo " cyrene-pg 已用 docker run 启动" \ + || echo " (cyrene-pg 启动失败,请手动检查端口/镜像)" + fi + fi else echo " (未检测到 docker;若用 SQLite 默认可不启动 PG)" fi