运行捆绑安装时Docker空间不足

时间:2016-09-11 04:38:18

标签: ruby docker

我正在尝试为我的应用FROM ruby:2.2.1构建一个图片,我的app文件夹总计约200 MB压缩。

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

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

我也想过:

  • Dockerfile移动到子文件夹(但我认为我无法使用docker compose将父文件夹添加为卷
  • 在Dockerfile中执行git克隆,但由于我已经在计算机上安装了这些文件,这听起来像是一个愚蠢的步骤。
  • 我应该弄清楚如何为docker容器添加更多磁盘空间?但我仍然不喜欢创建上下文所需的时间。

1 个答案:

答案 0 :(得分:0)

注意,您的问题与您的标题或帖子的前半部分不符,我会回答您的问题。

  

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

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

  

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

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