W获取脚本进度

问题描述 投票:0回答:2

我有一个

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
进度显示为条形,但如何将其传递给脚本?

docker wget
2个回答
3
投票

非 tty(...)我更喜欢将

wget
进度显示为条形

根据

wget
手册页

当输出不是 TTY 时,进度条总是回退到 “点”,即使

--progress=bar
在调用期间传递给 Wget。 可以覆盖此行为,并通过使用强制“bar”输出 “力”参数为
--progress=bar:force

因此您应该将

--progress=bar:force
添加到您的
wget
通话中。


0
投票

您可以使用 SED 替换所有 wget 以使用进度条和安静模式。

sed -i "/wget ftp:/ s/$/ -q --show-progress/" setup.sh

此外,添加

-i
以应用文件中的更改。

© www.soinside.com 2019 - 2024. All rights reserved.