on docker image level = error msg =“无法closurestar编写器:io:在closures的pipe道上读/写”

time="2017-10-27T07:39:20Z" level=error msg="Can't add file /var/app/current/app/content_classifier/forest.pickle to tar: io: read/write on closed pipe" time="2017-10-27T07:39:20Z" level=error msg="Can't close tar writer: io: read/write on closed pipe" Failed to build Docker image aws_beanstalk/staging-app: tar writer: io: read/write on closed pipe" Error response from daemon: Untar error on re-exec cmd: fork/exec /proc/self/exe: cannot allocate memory. Check snapshot logs for details. (Executor::NonZeroExitStatus) 

我在django_app / content_classifer对象中有一个Pickle对象。 有一个类来预测结果,并且在芹菜任务文件被初始化时它正在初始化自己。

在标题中发出错误信息后, docker build仍然失败。

我几分钟前遇到同样的问题,当我发现你的问题:)我打开了一些文件=他们被其他应用程序(GIT)使用,

请确保没有正在使用的文件。

希望它会有所帮助。

这似乎是一个input/输出错误,docker不能访问它想要的文件。 正如@ Luk3rson所build议的,确保这些文件不被任何其他应用程序使用。 尝试在/var/log/debugging/var/log/ 。 愿它帮助你。

docker工人无法生成图像的问题是,pickle对象是由其他进程生成的,并由不同的进程访问,具有不同的用途。 我将文件移动到系统中每个进程/用户可访问的目录。 也许解决scheme并不能解释为什么它能够生成的图像仍然不被理解。

我在设置文件中定义了pickle对象的位置。

 picklefile = "usr/local/webapp/forest.pickle" 

我只是在Dockerfile中添加如下步骤。

 RUN chown -R /user/local/webapp/