首页 > 解决方案 > 当我在 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文件,也无意解压缩它。

文件本身很好,我尝试单独下载它,效果很好。

关于如何解决这个问题的任何想法?

标签: dockerubuntudockerfileopenstreetmapnominatim

解决方案


tar 命令用于打包镜像的新层,在 18.06 中,这一步似乎有 8GB 的​​限制。我建议:

  • 在github上的问题得到解决后得到通知:https ://github.com/moby/moby/issues/37581
  • 将数据移出图像。您的图像应该是应用程序二进制文件和库,而不是数据本身。数据应作为卷安装到正在运行的容器中。

推荐阅读