powershell - Dockerfile RUN powershell wget 并查看进度
问题描述
在我的 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 的输出通过管道传输到 stdout,以便在运行时看到它docker build
?
解决方案
我放弃了尝试从 Dockerfile 进行下载,而是编写了一个单独的脚本来预下载我需要的文件并在文件不存在时扩展它们的档案。该脚本然后调用docker build
,docker run
等。在 Dockerfile 中,我正在复制展开档案的目录。
推荐阅读
- list - 使用 `foldl` 实现 Haskell 的 `take` 函数
- r - 使用 ggplot2 重新创建圆形图
- python - 魔杖python用GIF获取像素颜色
- javascript - 在 JS for 循环中的某个点存储“i”的值
- ruby - 如何让 `bundle console` 不会死于 Ctrl + C
- asp.net - 将编译后的项目保存在 wwwroot 文件夹内的一个公共目录中
- linux - 如何在 Spark 中编写一个独立的应用程序,以在填充了提取的推文的文本文件中找到 20 个大多数提及
- c# - 为共享基类的产品创建创建页面的正确方法是什么
- python - 如何使用匹配值对数据进行分组
- javascript - 在事件更改时跨表保持状态