docker - 当我在 Ubuntu 16.04 上下载大文件 (40GB) 时,Docker 构建崩溃
问题描述
我正在 Ubuntu 16.04 上构建 Docker 映像。它由下载文件的 curl 命令组成,它传递小文件,但是当我下载大文件(40GB)时,它崩溃并出现以下错误:
Step 35/68 : RUN curl -L ${PBF_URL} --create-dirs -o /srv/nominatim/src/data.osm.pbf
---> Running in 9fb68ab31988
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 39.9G 100 39.9G 0 0 8855k 0 1:18:55 1:18:55 --:--:-- 9.8M
Error processing tar file(exit status 1): unexpected EOF
这是我正在运行的 Docker 文件的链接:
https ://github.com/merlinnot/nominatim-docker/blob/master/Dockerfile
我使用强大的服务器来构建它,50 GB 的 RAM,10 个内核。我尝试修改诸如 之类的内存参数--memory-swap -1 --memory 32g
,但它并没有真正帮助。
我想指出,我没有下载tar
文件,也无意解压缩它。
文件本身很好,我尝试单独下载它,效果很好。
关于如何解决这个问题的任何想法?
解决方案
tar 命令用于打包镜像的新层,在 18.06 中,这一步似乎有 8GB 的限制。我建议:
- 在github上的问题得到解决后得到通知:https ://github.com/moby/moby/issues/37581
- 将数据移出图像。您的图像应该是应用程序二进制文件和库,而不是数据本身。数据应作为卷安装到正在运行的容器中。
推荐阅读
- internationalization - 更新到 Angular12 i18n 本地化 dosnt 后不再工作
- algorithm - 如何对嵌套类型的数组进行排序?
- python-3.x - 在长列表 Python 中查找所有元素组合的最有效方法
- r - 计算历史 VaR 时出错,需要 True/False 时出错缺失值
- python - 我正在尝试使用工资数据 csv 文件制作简单的线性回归模型,并且有 35 个数据点。我如何将其拆分为 80-20?
- javascript - typemismatcherror ie11 web crypto encrypt method 有什么问题?
- symfony - 在单独的虚拟机上运行 symfony 命令
- bind - 为什么不在绑定方法 polyfill 中检查这个 instanceof fBound 呢?
- python - AttributeError:“float”对象没有属性“dtype”
- r - 我有 EV 数据,我想做一个 timeserise