jha*_*aut 2 pipe docker dockerfile docker-build
我尝试pv在 Dockerfile 中使用该命令,但当我调用构建过程时,屏幕上没有显示任何内容。
我制作了一个非常简单的 Dockerfile 版本:
FROM debian:jessie
RUN apt-get update && apt-get install -y pv
RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -L 5 -s56 > /dev/null
Run Code Online (Sandbox Code Playgroud)
如果我在一个简单的终端中运行该命令,我会得到以下输出:
35 B 0:00:07 [5.35 B/s] [================================================================> ] 62% ETA 0:00:04`
Run Code Online (Sandbox Code Playgroud)
但是当我像这样运行我的 docker build 时,docker build -t foo .我只得到了这个:
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM debian:jessie
---> 040bf8e08425
Step 2 : RUN apt-get update && apt-get install -y pv
---> Using cache
---> 155e9ebf615f
Step 3 : RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -L 5 -s56 > /dev/null
---> Running in 3afdb7b5822c
---> 6fcf83d0cd02
Removing intermediate container 3afdb7b5822c
Successfully built 6fcf83d0cd02
Run Code Online (Sandbox Code Playgroud)
有没有办法让这个pv命令起作用?
谢谢 !
使用pv -forpv --force它将按照您期望的方式工作。引用 pv 的手册页:
-f, --force
Force output. Normally, pv will not output any visual display if standard error is no a terminal.
This option forces it to do so.
Run Code Online (Sandbox Code Playgroud)
我不知道三年多前提出这个问题时这是否是一个选择,但现在它有效。
在我的 Dockerfile 中,如下所示:
RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -f -L 5 -s57 > /dev/null
Run Code Online (Sandbox Code Playgroud)
我得到以下作为示例输出:
Step 3/3 : RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -f -L 5 -s57 > /dev/null
---> Running in 57c657f93610
25.0 B 0:00:05 [5.21 B/s] [==============> ] 44% ETA 0:00:06
Run Code Online (Sandbox Code Playgroud)
...另外,为了获得“100%”正确,您需要运行pv -s57或echo -n 抑制换行符。
| 归档时间: |
|
| 查看次数: |
2467 次 |
| 最近记录: |