2026-06-13
FROM node:26-alpine— Node.js 26 不存在,最新 LTS 是 22FROM lukemathwalker/cargo-chef:latest-rust-1.96— Rust 1.96 不存在,最新稳定版是 1.85- Dockerfile 未复制根
Cargo.toml和Cargo.lock到 planner 阶段,workspace 依赖解析可能失败
- ✅
node:26-alpine→node:22-alpine - ✅
lukemathwalker/cargo-chef:latest-rust-1.96→lukemathwalker/cargo-chef:latest-rust-1.85 - ✅ Planner 阶段添加根
Cargo.toml和Cargo.lock复制- 在
/app目录下复制根 workspace 文件 - 再进入
/app/crablet执行cargo chef prepare
- 在
- ✅ Builder 阶段添加根
Cargo.toml和Cargo.lock复制- 使用
cargo build --release -p crablet构建 workspace 中的指定包
- 使用
- ✅ 修正 runtime 阶段 COPY 路径
/app/crablet/target/release/crablet→/app/target/release/crablet(workspace 构建目标目录在根目录下)
up:目标使用docker-compose(旧命令),应改为docker composedesktop-sidecar-copy硬编码aarch64-apple-darwin,不支持跨平台构建- 缺少 Windows 和 Linux 的 sidecar 复制任务
- ✅
docker-compose up -d→docker compose up -d - ✅
docker-compose down -v→docker compose down -v - ✅
desktop-sidecar-copy改为自动检测平台(通过uname -s和uname -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)
FEATURES="knowledge,web"与install.sh的knowledge,auto-working,web不一致
- ✅
FEATURES="knowledge,web"→FEATURES="knowledge,auto-working,web"
- ✅ 无需修改。文件本身为 Compose 配置文件定义,未使用
docker-compose命令引用。
| 文件 | 验证方式 | 结果 |
|---|---|---|
| Dockerfile | 目视检查 | ✅ 通过 |
| Justfile | 目视检查 | ✅ 通过 |
| scripts/build.sh | bash -n |
✅ 通过 |
| docker-compose.yml | docker compose config -q |
✅ 通过 |
- 安装
just命令行工具(cargo install just或brew install just)以本地验证 Justfile 语法 - 考虑在 CI 中增加
docker compose config -q校验步骤 - 如使用交叉编译,可考虑为
desktop-sidecar-copy-linux和desktop-sidecar-copy-windows添加交叉编译支持(使用cross或cargo zigbuild)