如何通过纯Go模板优化Docker CLI命令移除输出空行?
解决Docker上下文端点输出空行的问题
最佳方案:结合过滤与模板
直接通过--filter参数筛选当前激活的上下文,再输出对应端点,完全避免空行且无需依赖额外Shell命令:
docker context ls --filter "current=true" --format '{{.DockerEndpoint}}'
该命令通过--filter "current=true"仅匹配当前上下文,再用--format模板直接提取DockerEndpoint字段,输出结果只有端点内容,无多余空行,跨所有支持Docker CLI的环境通用。
纯Go模板优化方案(不使用过滤)
如果仅希望通过调整Go模板尝试优化,可修改模板为:
docker context ls --format '{{- if .Current -}}{{.DockerEndpoint}}{{- end -}}'
需注意:Docker CLI默认会为每个上下文条目添加换行,因此非当前上下文的条目仍会产生空行(模板输出空字符串后,CLI自动追加换行)。这种方式不如过滤方案可靠,仅在特定场景下适用。
内容的提问来源于stack exchange,提问作者Réda Housni Alaoui
相关产品推荐
相关产品推荐

