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

标签 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文件,我无意解压缩它。

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

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

最佳答案

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

  • 关注github上的问题,待解决后通知:https://github.com/moby/moby/issues/37581
  • 将数据移出图像。您的图像应该是应用程序二进制文件和库,而不是数据本身。数据应作为卷安装到正在运行的容器中。
  • 关于当我在 Ubuntu 16.04 上下载大文件 (40GB) 时,Docker 构建崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51857021/

    相关文章:

    python - 无法构建 Dockerfile - : Not a directory Error using ADD command

    azure - 如何向 kubernetes 中的其他 pod 公开服务?

    php - 安装 Zend Framework 和使用 zf 脚本时出现问题

    python - Dockerfile RUN合并pip命令

    docker - 运行composer安装,然后在Docker项目中复制项目文件

    database - docker 和 PostgreSQL : can not create database having '-' in database name during initialization

    linux - 可以从内部暂停无特权的Docker容器吗?

    c++ - gcc 库函数的手册页

    linux - 对字段中的 $ 值(以逗号作为千位分隔符的美国格式数字)进行排序

    Dockerfile 与 Docker 镜像