Dockerfile运行powershell wget并查看进度
在my dockerfile中,您希望使用以下命令序列下载和解压缩大型zip文件:Dockerfile运行powershell wget并查看进度,powershell,docker,docker-for-windows,cmdlets,Powershell,Docker,Docker For Windows,Cmdlets,在my dockerfile中,您希望使用以下命令序列下载和解压缩大型zip文件: RUN powershell -Command \ wget http://my_server/big_huge.zip \ -OutFile C:\big_huge.zip ; \ Expand-Archive -Path C:\big_huge.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的输出通过管道传输到stdout,以便我在运行docker build
时可以看到它?我不知道docker。但是,您可能可以通过powershell cmdlet输出主机来传输输出。键入帮助主机以获取更多信息。我放弃了从Dockerfile下载的尝试,而是编写了一个单独的脚本,预先下载我需要的文件,并在文件不存在时扩展其存档。然后,此脚本调用docker build
,docker run
,等等。在docker文件中,我正在复制扩展归档文件的目录。将输出传输到Out主机不会改变此命令在主机系统上的执行方式,当我尝试在docker文件中使用它时,它只是失败了<代码>“Out-Host”无法识别为内部或外部命令、可操作程序或批处理文件。Ok。我正在使用Powershell核心版本7。我们的主机可能不是你的解决方案,但奇怪的是你没有它。