Dockerfile 运行 powershell wget 并查看进度

Dockerfile RUN powershell wget and see progress

在我的 dockerfile 中,我想使用以下命令序列来下载和解压缩一个大的 zip 文件:

RUN powershell -Command                           \
    wget http://my_server/big_huge.zip            \
        -OutFile C:\big_huge.zip ;                \
    Expand-Archive -Path C:\big_huge.zip          \
                   -DestinationPath C:\big_huge ; \
    Remove-Item C:\big_huge.zip -Force

我不想使用 ADD 下载 zip 文件不会改变,我希望缓存这一步。

我上面的内容似乎有效,但我没有像往常一样获得任何下载进度指示。这是一个无赖,因为这是一个很大的下载。我想下载的进度是模糊的,因为 Invoke-WebRequest 其中 wget 是一个 cmdlet 的别名。有什么方法可以将 cmdlet 的输出通过管道传输到标准输出,这样我就可以在 运行 docker build?

时看到它

我不知道Docker。但也许您可以通过 powershell cmdlet Out-Host 管道输出。输入 help Out-Host 获取更多信息。

我放弃了尝试从 Dockerfile 进行下载,而是编写了一个单独的脚本来预下载我需要的文件并在文件不存在时扩展它们的存档。该脚本然后调用 docker builddocker run 等。在 Dockerfile 中,我正在复制展开存档的目录。