在Ubuntu 16.04上下载大文件(40GB)时Docker构建崩溃

时间:2018-08-15 10:26:21

标签: docker ubuntu dockerfile openstreetmap nominatim

我正在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文件,也无意解压缩该文件。

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

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

1 个答案:

答案 0 :(得分:2)

tar命令用于打包图像的新层,在18.06版中,该步骤似乎限制为8GB。我建议:

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