【发布时间】:2017-06-09 08:14:28
【问题描述】:
我正在开发一个Go 脚本,该脚本使用Docker API 用于我的项目。登录到我的存储库后,我提取了我想要的 Docker 映像,但问题是 ImagePull 函数返回了一个 io.ReadCloser 的实例,我只能通过以下方式将其传递给系统输出:
io.Copy(os.Stdout, pullResp)
我可以看到响应很酷,但是我找不到一种体面的方法来解析它并根据它实现一个逻辑,如果下载了新版本的图像,它会做一些事情,以及其他如果图像是最新的。
如果您分享您的经验,如果您曾经遇到过这个问题,我会很高兴。
【问题讨论】:
-
响应是否有标准格式?如果是这样,您可以使用json.Decoder 将其解码为结构并根据结构中的值执行您想要的操作。
-
其实它有点像流。我是
Go的新手,所以我不太确定 :) -
你能添加一个带有示例响应输出的编辑吗,我没有在docker上工作过,只是有一个高水平的理解。
-
我不能直接用
fmt.Print()打印它,因为我得到&{0xc4202d42c0 {0 0} false <nil> 0x62f8b0 0x62f840},所以唯一的选择是将它传递给stdout,这给了我这样几行:@987654330 @。正如我之前所说,它类似于流,而不是静态数据,可以简单地解析为原生 JSON 对象。 -
你能显示代码吗?
标签: docker go docker-api