services: # 定义你的开发容器服务 meta-unit-dev: # 使用上一步我们定义的 Dockerfile 构建镜像 # 如果 Dockerfile 在 .devcontainer/Dockerfile,则 build context 指向 .devcontainer build: context: . # build context 指向当前项目根目录,以便 Dockerfile 可以访问整个项目 dockerfile: Dockerfile # 指定 Dockerfile 的路径 # args: # 如果 Dockerfile 有 ARG 参数,可以在这里传递 # PROTOC_VERSION: "3.20.1" # 容器名称,方便识别和管理 container_name: meta-unit-dev-env # 将本地项目代码挂载到容器的 /app 目录 # 这样你在本地修改代码,容器内会实时同步 volumes: - .:/app # 将当前目录 (meta-unit-core 项目根目录) 挂载到容器的 /app # 端口映射 (如果你的项目有服务需要从容器内部暴露到宿主机) # 例如,未来集成测试中,如果模拟的 Avatar Host 需要监听某个端口 # - "8080:8080" # 宿主机端口:容器端口 # 默认命令 (可选) # 通常 JetBrains IDE 会覆盖这个命令来启动其后端服务 # command: /bin/bash # 启动一个 bash shell,方便手动进入容器调试 # 特权模式 (可选,通常不建议,但在一些极端低层级开发或调试时可能需要) # privileged: true # 环境变量 (可选) environment: # RUST_LOG: debug # 设置 Rust 日志级别,方便调试 # CARGO_HOME: /usr/local/cargo # 确保 Cargo 路径正确(通常镜像已处理) # RUSTUP_HOME: /usr/local/rustup # 确保 Rustup 路径正确(通常镜像已处理) TZ: Asia/Singapore # 设置时区,与你的开发环境一致 # 保持容器运行,即使没有进程在前端运行 (对于开发容器很重要) stdin_open: true # docker run -i tty: true # docker run -t # 额外的参数,例如 CPU/内存限制,或其他 Docker 特性 # cpuset: "0-1" # mem_limit: "2g"