2016-09-11 57 views
0

我正在尝试为我的应用程序构建一个图像,FROM ruby:2.2.1,我的应用程序文件夹总计大约压缩了200 MB。运行软件包安装时Docker空间不足

运行时我收到"Your disk is full"bundle install。创建压缩上下文也需要太多时间。然而在/var/上运行df会显示超过1TB的可用空间,但这并不妨碍我。

我的问题是,我可以忽略所有使用.dockerignore中的*,然后使用docker-compose将我的根项目文件夹添加为卷?这听起来像个好主意吗?

我也想:

  • 移动Dockerfile到子文件夹(但我觉得我不能够在父文件夹添加为音量使用泊坞窗组成
  • 做一个git的clone Dockerfile,但因为我已经在我的电脑上有这些文件,这听起来像一个愚蠢的步骤。
  • 我应该只是想知道如何添加更多的磁盘空间到码头集装箱吗?但我仍然不喜欢它需要的时间创建背景。
+0

如果我忽略'.dockerignore'上的文件,我可以在'Dockerfile'文件中使用'COPY'吗? –

+0

您正在使用哪个操作系统。 –

+0

mac os,我有3TB的可用空间,所以我知道不适用于空间:P –

回答

0

请注意,您的问题与您的标题或您的文章的前半部分不符,我会回答您提出的问题。

我的问题是,我可以忽略所有在* .dockerignore中使用*,然后使用docker-compose将我的根项目文件夹添加为卷?这听起来像个好主意吗?

您可以在docker-compose中添加项目的卷,但会损失很多可移植性(如果其他人试图在没有卷数据的情况下尝试使用它,图像将不完整)。你也失去了执行任何编译步骤的能力,并且可能会增加你的容器启动时间,因为它引入了依赖关系。最后,如果您的内部版本空间不足,很可能会在运行时耗尽空间,除非您的卷数据是容器大小的重要部分。

如果我忽略.dockerignore上的文件,我可以在Dockerfile的该文件上使用COPY吗?

不,您不能在通过.dockerignore推送到docker守护程序时排除的任何文件上使用COPY或ADD。

相关问题