我有一个
Dockerfile
,它克隆一个存储库并运行该存储库中存在的 shell 脚本...
示例
RUN git clone https://github.com/DaehwanKimLab/hisat-genotype.git /hisatgenotype
WORKDIR /hisatgenotype
RUN ["/bin/bash", "setup.sh", "-r"]
我遇到的问题是脚本使用
wget
但因为 docker
将其作为非 tty 执行,所以结果进度以 dot
模式显示。
这超出了日志的缓冲区,不允许我看到
docker build
期间发生的所有事情。
我希望将
wget
进度显示为条形,但如何将其传递给脚本?
非 tty(...)我更喜欢将
进度显示为条形wget
wget
手册页
当输出不是 TTY 时,进度条总是回退到 “点”,即使
在调用期间传递给 Wget。 可以覆盖此行为,并通过使用强制“bar”输出 “力”参数为--progress=bar
。--progress=bar:force
因此您应该将
--progress=bar:force
添加到您的 wget
通话中。
您可以使用 SED 替换所有 wget 以使用进度条和安静模式。
sed -i "/wget ftp:/ s/$/ -q --show-progress/" setup.sh
此外,添加
-i
以应用文件中的更改。