feat(build): 一键部署自动安装 office 技能运行时依赖(Node v22.23.2 预编译二进制 + pymupdf)

This commit is contained in:
yumoqing 2026-08-19 13:59:51 +08:00
parent 88d10b7999
commit b3fc5f99b2

View File

@ -68,6 +68,9 @@ for mod in pipeline_core pipeline_ops pipeline_dist pipeline-sdlc showcase tenan
fi
done
# 6c. Runtime deps: pymupdfoffice-text-extract 技能的 pdf 提取脚本依赖)
"$cdir/py3/bin/pip" install pymupdf 2>&1 | tail -1
# 6b. Deploy skills: global(public skills) + packs(skill pack manifests)
if [ -d "pkgs/pipeline_core/skills_library" ]; then
mkdir -p "$cdir/skills/global"
@ -141,6 +144,29 @@ if [ -x "$cdir/bin/bwrap" ]; then
else
echo " WARN: bwrap not available (deploy sandbox will degrade to dir isolation)"
fi
# 10.8 Install Nodeoffice 技能脚本依赖,无 sudo官方预编译二进制
# 解压到 bin/nodejs/symlink node/npm/npx 到 bin/start.sh 已把 $cdir/bin 加进 PATH
NODE_VER="v22.23.2"
if [ ! -x "$cdir/bin/nodejs/bin/node" ]; then
echo " node: downloading $NODE_VER (linux-x64) ..."
tmpn=$(mktemp -d)
if curl -sL --max-time 180 "https://nodejs.org/dist/$NODE_VER/node-$NODE_VER-linux-x64.tar.xz" -o "$tmpn/node.tar.xz" && \
tar -xJf "$tmpn/node.tar.xz" -C "$tmpn"; then
mkdir -p "$cdir/bin/nodejs"
cp -a "$tmpn/node-$NODE_VER-linux-x64/." "$cdir/bin/nodejs/"
else
echo " WARN: node 下载失败office 技能脚本不可用)"
fi
rm -rf "$tmpn"
fi
ln -sf nodejs/bin/node "$cdir/bin/node"
ln -sf nodejs/bin/npm "$cdir/bin/npm"
ln -sf nodejs/bin/npx "$cdir/bin/npx"
if [ -x "$cdir/bin/node" ]; then
echo " node: $("$cdir/bin/node" --version)"
fi
# 6. Fix auto-assign created_by in CRUD dspys (xls2ui overwritten)
for d in sd_projects sd_iterations; do
for t in add update; do