我尝试在Dockerfile中使用pv
命令,但在调用构建过程时屏幕上没有显示任何内容。
我制作了一个非常简单的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
如果我在一个简单的终端中运行命令,我得到了这个输出:
35 B 0:00:07 [5.35 B/s] [================================================================> ] 62% ETA 0:00:04`
但是当我像这样docker build -t foo .
运行我的docker build时,我只得到了这个:
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
有没有办法让这个pv
命令工作?
谢谢!
答案 0 :(得分:0)
使用pv -f
或pv --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.
我不知道这是三年前提出这个问题时的一个选择,但是现在可以了。
在我的Dockerfile中这样子:
RUN echo "Lorem ipsum dolor sit amet, consectetur adipiscing elit." | pv -f -L 5 -s57 > /dev/null
我将获得以下示例输出:
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
...此外,要正确使用“ 100%”,您需要运行pv -s57
或echo -n
来禁止换行。