处理docker和Jenkins中的大型二进制文件(3 GB)

我在我的docker文件中使用谷歌模型(二进制文件:大约3GB),然后使用jenkins生成和部署在生产服务器上。 其余的代码是从bitbucket回购。

从docker文件中下载并解压文件的示例行。 它只会发生一次,因为这个命令将被caching。

FROM python:2.7.13-onbuild RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install --assume-yes apt-utils RUN apt-get update && apt-get install -y curl RUN apt-get update && apt-get install -y unzip RUN curl -o - https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz \ | gunzip > /usr/src/app/GoogleNews-vectors-negative300.bin 

当我在本地机器上构build并运行Docker时,一切正常。 但是,当我通过修补版本将这些更改通过Jenkins推送到生产服务器时,我的构build过程最终失败。 设置,构build和testing阶段工作正常。 但是,构build后阶段失败。 (构build过程推动更改回购,并根据日志,在docker文件中的所有命令也运行良好。)之后发生的事情,当我看到日志时,我得到以下错误。

 18:49:27 654f45ecb7e3: Layer already exists 18:49:27 2c40c66f7667: Layer already exists 18:49:27 97108d083e01: Pushed 18:49:31 35a4b123c0a3: Pushed 18:50:10 1e730b4fb0a6: Pushed 18:53:46 error parsing HTTP 413 response body: invalid character '<' looking for beginning of value: "<html>\r\n<head><title>413 Request `Entity Too Large</title></head>\r\n<body bgcolor=\"white\">\r\n<center>`<h1>413 Request Entity Too Large</h1></center>\r\n<hr> center>nginx/1.10.1</center>\r\n</body>\r\n</html>\r\n" 

难道那个文件太大了?

在添加这个文件之前,docker和Jenkins的一切工作都很好。

我想知道在处理像这样的大文件泊坞窗/jenkins是否有任何限制? 或者我正在接近它的方式打破了一些东西。

更新:增加client_max_body_size解决了这个特定的错误。 但是,我在ssh -o StrictHostKeyChecking=no root@ipaddress "cd /root/ourapi &&docker-compose pull api &&docker-compose -p somefolder up -d"

docker-compose pull在这里出现意外的eof。 它试图下载图像(1.6 GB),但几乎接近该尺寸后取消它,然后重试,并以eof错误结束。

在这种情况下,如何处理大文件需要处理不同的问题呢?

更新2: 问题已经解决。 我需要将client_max_body_size增加到4 GB,还需要增加从我们自己的存储库服务器中提取存储库的超时参数。 调整这两个参数已经导致解决问题。

问题主要是由于以下原因造成的:

  • Ngnix服务器configuration中的client_max_body_size的默认值非常低。 因此,我们无法上传3.6 GB的文件,因此我们将此值增加到4 GB。
  • 我们在库pipe理系统上运行Jetty服务器来提供HTTPstream量,所以我们需要增加Jenkins的超时时间,以便从那里提取相关的docker文件。

这个答案主要是在这个具体问题的背景下。 然而,如何更好地处理这些文件的问题仍然存在。 而且,将client_max_body_size增加到4 GB是否是一个好主意还不清楚。

client_max_body_size的相关文档: http : //nginx.org/en/docs/http/ngx_http_core_module.html#client_max_body_size