Skip to content

Latest commit

 

History

History
76 lines (55 loc) · 2.74 KB

File metadata and controls

76 lines (55 loc) · 2.74 KB

构建脚本修复总结

修复时间

2026-06-13

修复文件清单

1. Dockerfile

问题

  • FROM node:26-alpine — Node.js 26 不存在,最新 LTS 是 22
  • FROM lukemathwalker/cargo-chef:latest-rust-1.96 — Rust 1.96 不存在,最新稳定版是 1.85
  • Dockerfile 未复制根 Cargo.tomlCargo.lock 到 planner 阶段,workspace 依赖解析可能失败

修改内容

  • node:26-alpinenode:22-alpine
  • lukemathwalker/cargo-chef:latest-rust-1.96lukemathwalker/cargo-chef:latest-rust-1.85
  • ✅ Planner 阶段添加根 Cargo.tomlCargo.lock 复制
    • /app 目录下复制根 workspace 文件
    • 再进入 /app/crablet 执行 cargo chef prepare
  • ✅ Builder 阶段添加根 Cargo.tomlCargo.lock 复制
    • 使用 cargo build --release -p crablet 构建 workspace 中的指定包
  • ✅ 修正 runtime 阶段 COPY 路径
    • /app/crablet/target/release/crablet/app/target/release/crablet(workspace 构建目标目录在根目录下)

2. Justfile

问题

  • up: 目标使用 docker-compose(旧命令),应改为 docker compose
  • desktop-sidecar-copy 硬编码 aarch64-apple-darwin,不支持跨平台构建
  • 缺少 Windows 和 Linux 的 sidecar 复制任务

修改内容

  • docker-compose up -ddocker compose up -d
  • docker-compose down -vdocker compose down -v
  • desktop-sidecar-copy 改为自动检测平台(通过 uname -suname -m
    • 支持 macOS (aarch64/x86_64)、Linux (x86_64/aarch64)、Windows (x86_64)
  • ✅ 新增 desktop-sidecar-copy-linux 任务
  • ✅ 新增 desktop-sidecar-copy-windows 任务
  • ✅ 新增 desktop-sidecar-copy-all 任务(复制所有平台 sidecar)

3. scripts/build.sh

问题

  • FEATURES="knowledge,web"install.shknowledge,auto-working,web 不一致

修改内容

  • FEATURES="knowledge,web"FEATURES="knowledge,auto-working,web"

4. docker-compose.yml

结论

  • ✅ 无需修改。文件本身为 Compose 配置文件定义,未使用 docker-compose 命令引用。

验证结果

文件 验证方式 结果
Dockerfile 目视检查 ✅ 通过
Justfile 目视检查 ✅ 通过
scripts/build.sh bash -n ✅ 通过
docker-compose.yml docker compose config -q ✅ 通过

后续建议

  1. 安装 just 命令行工具(cargo install justbrew install just)以本地验证 Justfile 语法
  2. 考虑在 CI 中增加 docker compose config -q 校验步骤
  3. 如使用交叉编译,可考虑为 desktop-sidecar-copy-linuxdesktop-sidecar-copy-windows 添加交叉编译支持(使用 crosscargo zigbuild