我们如何在docker history命令输出的第三列(由创建)中看到完整命令?
$ docker history docker.company.net/docker-base-images/image:1.0
IMAGE CREATED CREATED BY SIZE
c0bddf343fc6 7 days ago /bin/sh -c #(nop) LABEL com.company.build.r… 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG commit 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG date 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG repo 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG org 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG version 0B
<missing> 7 days ago /bin/sh -c #(nop) USER [company] 0B
<missing> 7 days ago /bin/sh -c apk --no-cache add openjdk8-jre-b… 72.2MB
<missing> 7 days ago /bin/sh -c #(nop) USER [root] 0B
<missing> 7 days ago /bin/sh -c #(nop) USER [company:company] 0B
<missing> 7 days ago |5 commit=d64d27b07439e6cfff7422acafe440a946… 3.92MB
<missing> 7 days ago /bin/sh -c #(nop) LABEL com.company.build.r… 0B
<missing> 7 days ago |5 commit=d64d27b07439e6cfff7422acafe440a946… 4.85kB
<missing> 7 days ago /bin/sh -c #(nop) ARG commit 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG date 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG repo 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG org 0B
<missing> 7 days ago /bin/sh -c #(nop) ARG version 0B
<missing> 5 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 5 weeks ago /bin/sh -c #(nop) ADD file:88875982b0512a9d0… 5.53MB
第三列(CREATED BY)是命令的缩写,这使得重建原始Dockerfile变得困难。是否可以在第三列中获得完整的命令?
感谢阅读。
为了便于调试,我需要以表格格式查看完整的构建历史,而不需要截断构建步骤。Docker Docs示例通常不完整(或不存在)。@Alassane_Hdiaye接受的答案可以工作,但如果在错误的地方使用,就会抛出错误。经过几次尝试,我得到了GoLang模板表格式化程序,以生成所需的结果。
Docker GoLang模板--format
选项适用于Docker history
,但必须在--format
之后输入,因为它修改的是--format
,而不是Docker history
。docker history
命令只接受一个参数。--format
选项更改docker history
的输出,--no trunc
修改--format
选项。
命令序列必须是
<代码>docker历史
命令行上的--no trunc
选项后面跟着--format
,因为它修改了--format
选项。
因此,对于表格格式的完整历史:
docker history <image-id> --format "table{{.ID}}, {{.CreatedBy}}" --no-trunc
输出很混乱,因为Dockerfile运行命令可以包装许多行。
因此,将结果传输到CSV文件并在Excel中打开它(因为缺乏更好的表查看器)。
docker history <image-id> --format "table{{.ID}}, {{.CreatedBy}}" --no-trunc > image-id-history.csv
所以现在我可以在Excel中看到完整的构建说明,无需截断。
作为旁注,Docker history
不会输出RUN和其他dockerfile build关键字,但可以推断出这些关键字。但至少有完整历史记录中的完整命令可用。
您可以添加标志--no trunc
,以查看完整的命令。
它是这个问题的补充,其中典型的解决方案是使用命令显示 PS:没有人使用选项,我如何以最简单的即插即用方式使用它?
它是这个问题的补充,其中典型的解决方案是使用命令显示 PS:没有人使用选项,如何以最简单的即插即用方式使用它?
问题内容: 我正在使用JSch连接到SSH并执行命令。其中一个命令给出了很大的输出。在终端中,如果执行命令,则必须按Enter键才能查看整个输出。使用JSch,我无法检索整个输出。 当我使用交互式终端登录时,命令输出在填充屏幕后停止并等待。 该代码取自 如何在String中获取jschshell命令输出: 问题答案: 通常,您不应使用“ shell”通道来自动执行命令。 “外壳”通道旨在实现交互式
用 history 有一个很奇葩的地方 这个窗口输入的命令 xxxx,在另一个窗口 history 看不到刚刚执行的 xxxx
詹金斯·弗。2.176.1声明式管道,试图从一个阶段获得蝙蝠命令输出,以设置另一个阶段的代理标签, 当通过bat命令(“echo%computername%”设置变量时,我可以很好地从步骤中读取变量(我得到:V-COMP-S6-CI3,这正是我所需要的。) 我不能设法把它设置在代理标签中。当我尝试在另一个阶段设置代理{标签${winCompName}}时,我得到:没有标签为c:\jenkins\b
我想让我的Bash脚本对最终用户来说更加优雅。当Bash执行命令时,如何隐藏输出? 例如,当Bash执行时 以下内容将显示给执行Bash的用户: 现在我想对用户隐藏这一点,而是显示: 我怎样才能完成这项任务?我一定会帮助使脚本更加用户友好。如果发生错误,则应向用户显示。 我想知道如何显示相同的消息,而一组命令正在执行。