System 常见问题
1. gops sys new 卡在选择系统型号
原因:
kind: gxl的系统会交互选择ModelSTD
建议:
- 正常在交互终端选择
- 自动化测试场景可设置
TEST_MODE=1 - 不需要型号的纯 compose 系统用
gops sys new --kind docker-compose(不询问型号)
2. gops sys setting --init 没有生成预期文件
确认点:
- 当前目录必须是系统根目录
sys/setting/目录是否存在
3. gops sys localize 失败
常见原因与报错:
系统变量未解析:缺少 .../sys/merged_vars.yml→ 先执行gops sys update解析变量;或去掉--only,让localize自动先update。sys_model.yml缺失- 值文件内容不是合法 YAML (提示:全注释 / 空文件会被视为空覆盖,不会报错)
建议:
gops sys localize --debug 2
先打开调试输出定位是哪一层配置缺失。
4. 值文件写了却没生效
确认点:
values/sys_value.yml里对应的行已取消注释——sys update生成的是整份注释模板,保持注释等价于空覆盖- 优先级:
values/value.yml>values/sys_value.yml>sys/merged_vars.yml的系统默认值 - 在运维项目内执行时,值来自
<project>/values/<system>/(依据上层ops-prj.yml解析),而不是系统自带的<sys>/values
5. 日志出现 unexpanded variable in localize path 且本地化被跳过
原因:sys/setting/list.yml 里的路径模板引用了未设置的变量(常见是 ${GXL_PRJ_ROOT})。
说明:
GXL_PRJ_ROOT由gops进程启动时按当前目录向上查找_gal/project.toml设置一次- 路径里仍残留
${...}时会告警并跳过;不会再创建字面量${...}目录
建议:确认是在系统目录内执行,且该目录(或其上层)存在 _gal/project.toml。
6. download/install/start 等系统命令失败
分两种情况(由 sys/sys_model.yml 的 kind 决定):
kind: gxl:最终依赖系统工作流和gx- 先确认
sys/workflows/operators.gxl存在 - 再确认
gx可执行:gops使用$HOME/bin/gx,且要求版本 >=0.13.0 - 实际映射为
gx run -e <env> -d <debug> [--cmd-arg <mod>] <cmd>,检查--env与--mod传参
- 先确认
kind: docker-compose:直接调用本机docker compose- 确认
docker compose可用 - 确认
.env已生成(gops sys localize) --mod会被忽略(纯 compose 系统没有模块)
- 确认
7. docker compose 报变量未定义
确认点:
- 已执行
gops sys localize生成.env .env位于系统根;compose 文件默认在sys/(项目目录锚定系统根,${VAR}由系统根的.env注入)- 密钥类变量用
${SEC_xxx}占位,由gops run start从~/.galaxy/sec_value.yml注入;直接用docker compose up不会自动注入密钥
8. 文档和目录树不一致
处理原则:
- 以当前
gops sys new真实生成结果为准 - 以当前仓库代码为准
- 不再使用旧版
gsys文档作为依据