Skip to main content

classify_runner_error

Function classify_runner_error 

Source
fn classify_runner_error(e: &Error, image: &str) -> (ExecStatus, String)
Expand description

把容器执行错误分类为前端可读的状态与脱敏消息。

issue #20 的核心诉求:让「镜像未构建」「daemon 不可达」从笼统的「系统暂时不可用」 中区分出来,给出可操作的修复指引。

判定策略:

  • 超时:docker.rsError::IOError { kind: TimedOut } 上报(docker.rs:223-227:305-309)。io::Error 的 Display 只渲染自定义消息(如 “Execution timed out”),不含 kind 名——故靠字符串 contains("TimedOut") 永远命中不了真实超时路径。 这里按变体 + kind 判定,是最可靠的信号。
  • 镜像缺失:Docker Engine API 稳定文本 “No such image”,走 Display 字符串匹配。
  • daemon 不可达:来自 get_docker() 构造的 io::Error 消息(docker.rs:54),走字符串匹配。
  • 其余:兜底「系统暂时不可用」。