-
随便什么队 authored
提交材料要求「与本地一致的 Docker 编译环境」,此前 Dockerfile 从未实际构建过。 本轮在 WSL Ubuntu-22.04 + Docker 29.1.3 上完成首次实构建,并修掉两个必然导致 容器内构建失败/文档失真的问题。 改动: - Dockerfile:改为整树 `COPY . .`。旧版只 COPY 各 `Cargo.toml`、`third_party/`、 `easy-fs/`,缺根 `Makefile`、`kernel/src/`、`rust-toolchain.toml`,容器内 `CMD make all` 必然失败(找不到 Makefile 与 src)。 - Dockerfile:工具链安装改为幂等判断——基镜像已预装两套工具链时跳过联网下载; 全新 `ubuntu:22.04` 走原安装分支,版本与评测镜像预装名单一致。 - Dockerfile:新增两个 build-arg。`BASE_IMAGE` 支持指向预装工具链的本地镜像 (离线/加速构建,产物不变);`RUSTUP_DIST_SERVER`/`RUSTUP_UPDATE_ROOT` 更换 工具链下载源(国内网络可换镜像,版本与组件不变)。 - Dockerfile:基线注释更正 `nightly-2024-05-02` → `2024-05-01`(实际值)。 - 新增 `.dockerignore`:排除 `.git`、各 `target/`、根目录 `kernel-rv`/`kernel-la`/ `disk.img`、`kernel/.cargo`、`*.log`。目的是让镜像内的构建等价于「干净 clone 后 构建」:宿主机残留的旧 `kernel-rv` 不会掩盖编译失败(P9),`kernel/.cargo` 也不会 替 Makefile 完成隐藏目录还原动作(P14)。 实测(真实输出): $ docker build -t oskernel2026:v1 . Successfully tagged oskernel2026:v1 $ docker run --rm oskernel2026:v1 make all Finished `release` profile [optimized] target(s) # kernel-rv Finished `release` profile [optimized] target(s) # la-stub -rwxr-xr-x 775560 kernel-rv Read RISC-V ELF64 -rwxr-xr-x 68320 kernel-la ELF64 LoongArch, Entry 0x200000 文档同步(把「docker build 未实测」全部更正): - README §3.5:命令、已实测结果、`.dockerignore` 的作用、两个 build-arg 的用法 - README §目录结构 与 §进度表:补 `.dockerignore` 与「Docker 编译环境
✅ 」 - docs/设计文档.md §9.2 差异表、§11.2 交付件表:改为已实测(并更正演示视频/仓库 可见性的旧状态描述) - docs/AI工具使用说明.md §二.3:示例更正;新增 §3.9 记录本次实测的目的、交互、 AI 首次输出的缺陷、验证结果与环境侧两个坑17a77760