配置系统概览
MANYOYO 提供灵活的配置系统,用于简化命令行操作和管理复杂的运行环境。
配置方式
MANYOYO 支持两种主要的配置方式:
- 环境变量配置:传递 BASE_URL、TOKEN 等环境变量到容器内的 CLI 工具
- 配置文件:使用 JSON5 格式的配置文件管理 MANYOYO 的运行参数
JSON5 格式说明
配置文件采用 JSON5 格式,相比标准 JSON 具有以下优势:
- 支持注释:可以使用
//单行注释和/* */多行注释 - 尾随逗号:数组和对象的最后一项可以有逗号
- 更灵活的键名:对象键名可以不加引号(符合标识符规则的情况下)
- 更好的可读性:适合人工编辑和维护
示例:
json5
{
// 这是注释
containerName: "my-dev", // 键名可以不加引号
imageVersion: "1.8.0-common", // 支持尾随逗号
}配置文件路径规则
运行配置
manyoyo run -r claude→ 加载~/.manyoyo/manyoyo.json的runs.claudemanyoyo run -r <name>仅支持runs.<name>名称,不支持文件路径
全局配置
- 运行任何 manyoyo 命令时,都会自动加载
~/.manyoyo/manyoyo.json(如果存在)
环境文件
manyoyo run --ef /abs/path/myenv.env→ 加载绝对路径环境文件--ef仅支持绝对路径,不支持短名称和相对路径
优先级机制
MANYOYO 配置参数分为两类,具有不同的合并行为:
覆盖型参数
这些参数只取最高优先级的值:
优先级顺序:命令行参数 > runs.<name> > 全局配置 > 默认值
覆盖型参数包括:
containerName- 容器名称hostPath- 宿主机工作目录containerPath- 容器工作目录imageName- 镜像名称imageVersion- 镜像版本containerMode- 容器嵌套模式yolo- YOLO 模式选择shellPrefix- 命令前缀shell- 执行命令serverUser- 网页服务登录用户名serverPass- 网页服务登录密码
其中网页认证参数 serverUser / serverPass 还支持环境变量兜底,优先级为:
命令行参数 > runs.<name> > 全局配置 > 环境变量 > 默认值
对应环境变量:MANYOYO_SERVER_USER、MANYOYO_SERVER_PASS。
示例:
bash
# 全局配置中设置 imageVersion: "1.8.0-common"
# 运行配置中设置 imageVersion: "1.8.0-full"
# 最终使用 "1.8.0-full"(运行配置优先级更高)合并型参数
这些参数会按顺序累加合并:
合并顺序:全局配置 + runs.<name> + 命令行参数
合并型参数包括:
env- 环境变量对象(按 key 覆盖)envFile- 环境文件数组volumes- 挂载卷数组ports- 端口映射数组imageBuildArgs- 镜像构建参数数组
示例:
bash
# 全局配置:env: {"VAR1":"value1"}
# runs.demo:env: {"VAR2":"value2"}
# 命令行:-e "VAR3=value3"
# 最终结果:VAR1/VAR2/VAR3 都会生效;同名 key 按后者覆盖前者配置合并规则表
| 参数类型 | 参数名 | 合并行为 | 示例 |
|---|---|---|---|
| 覆盖型 | containerName | 取最高优先级的值 | CLI -n test 覆盖 runs.<name> 或全局值 |
| 覆盖型 | hostPath | 取最高优先级的值 | 默认为当前目录 |
| 覆盖型 | containerPath | 取最高优先级的值 | 默认与 hostPath 相同 |
| 覆盖型 | imageName | 取最高优先级的值 | 默认 localhost/xcanwin/manyoyo |
| 覆盖型 | imageVersion | 取最高优先级的值 | 如 1.8.0-common |
| 覆盖型 | containerMode | 取最高优先级的值 | common, dind, sock |
| 覆盖型 | yolo | 取最高优先级的值 | c, gm, cx, oc |
| 覆盖型 | serverUser | 按网页认证优先级取值 | CLI > runs.<name> > 全局 > 环境变量 > 默认值 |
| 覆盖型 | serverPass | 按网页认证优先级取值 | CLI > runs.<name> > 全局 > 环境变量 > 默认值 |
| 合并型 | env | 对象按 key 合并覆盖 | 全局 + runs.<name> + CLI(同名后者覆盖) |
| 合并型 | envFile | 数组累加合并 | 全局 + runs.<name> + CLI 的绝对路径文件 |
| 合并型 | volumes | 数组累加合并 | 所有挂载卷生效 |
| 合并型 | ports | 数组累加合并 | 所有端口映射生效(透传 --publish) |
| 合并型 | imageBuildArgs | 数组累加合并 | 所有构建参数生效 |
调试配置
使用以下命令查看最终生效的配置:
bash
# 显示最终配置
manyoyo config show
# 显示将要执行的命令
manyoyo config command这些调试命令会显示所有配置源的合并结果,帮助您理解配置的优先级和合并逻辑。
下一步
- 环境变量详解 - 了解如何配置环境变量
- 配置文件详解 - 学习所有配置选项
- 配置示例 - 查看实用的配置示例
- 网页服务认证与安全实践 - 了解
serve模式认证与安全建议