From 13c7c5286082b1f4c24cd96083aa3c742b131324 Mon Sep 17 00:00:00 2001 From: Aska Date: Sun, 6 Sep 2026 12:15:53 +0800 Subject: [PATCH] =?UTF-8?q?chore(deploy):=20dev-up.sh=20=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E6=97=A0=20compose=20=E6=8F=92=E4=BB=B6=E7=9A=84=20Docker?= =?UTF-8?q?=EF=BC=8C=E5=9B=9E=E9=80=80=20docker=20run=20=E6=8B=89=E8=B5=B7?= =?UTF-8?q?=20cyrene-pg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本机 Docker 29.1.3 无 compose 插件(docker compose unknown command / docker-compose 未装), 原脚本每次启动都因 docker compose up 报错而被忽略继续掩盖。改为: - PG 已在跑 -> 跳过 - 有 compose 插件 -> compose - 否则回退 docker run 拉起 cyrene-pg README §3 同步补注该回退行为。脚本幂等,bash -n 通过。 --- README.md | 3 ++- scripts/dev-up.sh | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) 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