# meta-unit-core/.devcontainer/Dockerfile # 使用一个包含 Rust 工具链的官方镜像作为基础 # 推荐使用 rustlang/rust:latest-bullseye 或其他稳定版本 # 也可以选择 slim 镜像以减小体积,但可能需要手动安装更多基础工具 FROM rust:bullseye # 设置工作目录 WORKDIR /app # 1. 安装系统依赖 (如果需要) # 例如,如果你的 Rust 项目依赖于某些 C 库 (如 OpenSSL, SQLite), 则在此安装 # 对于 meta-unit-core 这样纯 Rust + WASM 的项目,初期可能不多 # RUN apt-get update && apt-get install -y \ # pkg-config \ # libssl-dev \ # build-essential \ # # ... 其他你项目可能需要的系统依赖 # && rm -rf /var/lib/apt/lists/* # 2. 安装 Rustup 组件 # rust-analyzer 是 IDE 智能感知的核心,clippy 用于 Linting,rustfmt 用于格式化 # 这些工具应该在容器内,而不是在宿主机上运行,以保证一致性 RUN rustup component add rust-analyzer clippy rustfmt # 3. 添加 WASM 编译目标 # 这是 Yuan (Meta Unit) 的核心目标 RUN rustup target add wasm32-unknown-unknown # 4. 安装 Protobuf 相关工具 # 编译 .proto 文件为 Rust 代码需要这些工具 # prost-build 是 Rust 的 Protobuf 代码生成库,我们通常在 Cargo.toml 中作为 build-dependency # 这里我们指的是安装 protoc 编译器本身 # 方法一:通过 apt-get 安装 (如果源里有的话) # RUN apt-get update && apt-get install -y protobuf-compiler # 方法二:下载并安装 protoc (更通用且版本可控) ARG PROTOC_VERSION="3.20.1" # 可以根据 meta-unit-proto 的版本来调整 RUN apt-get update && apt-get install -y curl unzip \ && curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-linux-x86_64.zip \ && unzip protoc-${PROTOC_VERSION}-linux-x86_64.zip -d /usr/local \ && rm protoc-${PROTOC_VERSION}-linux-x86_64.zip \ && apt-get clean && rm -rf /var/lib/apt/lists/* # 5. 安装其他可选的 Rust 工具 (如果需要) # 例如,wasm-pack 是用于 Rust 到 WASM 编译的工具,在开发 web-sys 或 node 环境下的 WASM 模块时很有用 # 对于 meta-unit-core,可能不是必需的,因为我们直接编译为 wasm32-unknown-unknown # RUN cargo install wasm-pack # 将 Cargo 的 bin 目录添加到 PATH (通常 rustlang/rust 基础镜像已完成) # ENV PATH="/usr/local/cargo/bin:${PATH}" # 设置默认用户,防止以 root 身份运行 (可选,但推荐用于安全) # RUN useradd -ms /bin/bash developer # USER developer # 暴露端口 (如果你的项目需要监听端口,例如在集成测试中启动一个模拟服务) # EXPOSE 8080