参考
配置参考
配置守护进程、运行时、runner、管理器、网关、控制台与可观测性策略。
基线文档
config/prd.yml 是守护进程行为和宿主机侧管理策略的受检基线。Docker 网关读取其中的 manager 和可选 gateway 段,然后上传同一文档,让各容器内的 sandbox-daemon serve --config-yaml 读取运行时配置段。
daemon:
server:
socket_path: /eos/runtime/daemon/runtime.sock
pid_path: /eos/runtime/daemon/runtime.pid
max_worker_threads: 32
runtime:
workspace:
layer_stack_root: /eos/layer-stack
scratch_root: /eos/workspace
setup_timeout_s: 30
exit_grace_s: 0.25
rfc1918_egress: allow
namespace_execution:
scratch_root: /eos/namespace_execution
layerstack:
autosquash_policies:
squash_at_n_layers: 100
runner:
mount_mask:
hidden_paths: [/eos]
manager:
docker:
privileged: false
daemon_binary_path: dist/sandbox-daemon-linux-arm64
daemon_config_yaml_path: config/prd.ymlmanager 中的宿主机路径从网关工作目录解析。受检文件还会注入 Docker Desktop 代理变量,因为 Engine API 不会把 Docker CLI 代理配置复制到新容器中。
配置段归属
| 配置段 | 所有者 | 控制内容 |
|---|---|---|
daemon | 沙箱守护进程 | Unix socket、PID 文件和 worker 数量。 |
runtime | 运行时服务 | 工作区路径、设置与退出时序、出口网络、namespace 暂存目录和自动压缩。 |
runner | Namespace runner | 挂载遮罩,包括对命令隐藏的路径。 |
observability | 遥测 | 可选的保留与采样策略;缺失时使用类型化默认值。 |
manager | 宿主机管理器/提供器 | 工作区选择器根目录、Docker 边界、构件、上传配置和容器环境。 |
gateway | 网关服务器 | 绑定地址、PID 路径和连接上限;认证从不来自 YAML。 |
console | 控制台服务器 | 绑定地址以及 RPC、健康检查、代理、解析和缓存超时。 |
manager.workspace_roots 为可选项。提供时,它必须是非空绝对目录列表,且 create_sandbox 必须选择其中一个。省略时,控制台选择器从网关用户的家目录开始,不会收窄已有 API 路径。
合并规则
测试可以在 prd.yml 之后加载一个本地 YAML override。对象递归合并,标量替换基线值,数组整体替换,省略的 key 继承。未知 key 和错误类型均为错误;null 只对类型化可选字段有效。
config/prd.yml
-> crates/<crate>/tests/**/<name>.test.yml操作名称、协议字段、schema 版本、文件布局名称和内核常量属于静态约定,应写在 Rust 中,而不是 YAML override 中。
优先级与环境变量
网关和控制台命令行参数覆盖环境变量,环境变量覆盖各自 YAML 段,YAML 段覆盖类型化默认值。仓库启动器还为文件路径和令牌加载增加一层发现逻辑。
| 变量 | 用途 |
|---|---|
SANDBOX_GATEWAY_CONFIG_YAML | Docker 网关启动器使用的基线路径。 |
SANDBOX_GATEWAY_SOCKET | 没有显式参数时,启动器和客户端使用的网关端点。 |
SANDBOX_GATEWAY_TOKEN_FILE | 仓库包装器使用的私有令牌文件位置。 |
SANDBOX_GATEWAY_AUTH_TOKEN | 运行时凭据;绝不是 YAML 字段。 |
SANDBOX_CONSOLE_CONFIG_YAML | 未提供 --config-yaml 时使用的控制台 YAML 路径。 |
SANDBOX_CONSOLE_BIND | 未提供 --bind 时使用的控制台 listener。 |
SANDBOX_CONSOLE_ASSETS | 未提供 --assets-dir 时使用的已构建 SPA 目录。 |
EOS_GATEWAY_BACKEND | 未提供 --backend 时使用的网关提供器。 |
Docker 启动器始终选择 Docker 后端,并传入它选定的配置路径。受支持的启动流程见安装。
默认值与校验
缺失的可选段使用类型化 Rust 默认值。网关监听 127.0.0.1:7878,写入 /tmp/eos-gateway.pid,并允许 256 个并发连接。控制台监听 127.0.0.1:7880;两者的默认值都只绑定 loopback。
服务启动前会校验 socket 地址、绝对路径、非空值、数值下限和配置段特定不变量。应把配置错误视为 schema 失败:修正被点名的字段,而不是添加无法识别的兼容 key。
