如何输出在 Docker-Compose.yml 的 yaml 解组中引发错误的行?

How do I output the the line that threw an error in a yaml unmarshal of a Docker-Compose.yml?

我正在编写一些接受 Docker-Compose.yml 并将其解组为结构的代码。我将 docker 组合数据作为 []byte.

    dockerData []byte
    var struct *struct
    if err := yaml.Unmarshal(dockerData, &struct)

我运行通过这个过程编写了很多文件。抛出错误时,有没有办法输出抛出错误的撰写文件的行或部分?

在记录器上设置标志以打印出行号

// main.go or config file

func init() {
    log.SetFlags(log.LstdFlags | log.Lshortfile)
}

您可以找到更多这些标志here

处理错误

dockerData []byte
var struct *struct
if err := yaml.Unmarshal(dockerData, &struct); err != nil {
    log.Print(err)
}