gRPC 监控出现 ENOENT 错误: health.proto 路径无法解析
作者: web-engineer创建于 2026年9月17日更新于 2026年9月18日
描述错误
gRPC 监控器永远不会运行。GrpcProvider 根据自身文件解析了健康协议:
// server/src/service/network/GrpcProvider.ts:67
const protoPath = path.join(path.dirname(currentFilePath), "protos", "health.proto");GrpcProvider.ts 位于 src/service/network/ 中,因此解析为 src/service/network/protos/health.proto。文件位于 src/service/protos/health.proto 中。每个 gRPC 检查在到达网络之前都会抛出错误:
[JobQueue](runJob:check) ENOENT: no such file or directory,
open '/app/src/service/network/protos/health.proto'作业失败,而不是记录检查,因此监控器永远处于 initializing 状态,并且 failCount 不断增长,检查表中没有任何内容来解释它。发布的镜像具有相同的故障以及第二个故障。npm run build 仅复制 src/templates,因此根本没有任何 .proto 进入 dist:
$ Docker run --rm --entrypoint sh ghcr.io/bluewave-labs/checkmate:develop
-c 'find /app/server/dist -name "*.proto"'
(no output)
$ Docker run --rm --entrypoint sh ghcr.io/bluewave-labs/checkmate:develop
-c 'grep -n "health.proto" /app/server/dist/service/network/GrpcProvider.js'
52: const protoPath = path.join(path.dirname(currentFilePath), "protos", "health.proto");镜像中唯一的副本是未受影响的 src 树,而 dist/index.js 并没有读取它。
内容来源: bluewave-labs/Checkmate