我正在尝试为我的应用FROM ruby:2.2.1
构建一个图片,我的app文件夹总计约200 MB压缩。
我在运行"Your disk is full"
时收到bundle install
。创建压缩上下文也需要太多时间。但是,在df
上运行/var/
会显示超过1TB可用,但这并不会让我感到困扰。
我的问题是,我可以使用*
中的.dockerignore
忽略所有内容,然后使用docker-compose将我的根项目文件夹添加为卷吗?这听起来像个好主意吗?
我也想过:
Dockerfile
移动到子文件夹(但我认为我无法使用docker compose将父文件夹添加为卷答案 0 :(得分:0)
注意,您的问题与您的标题或帖子的前半部分不符,我会回答您的问题。
我的问题是,我可以使用* .dockerignore中的*忽略所有内容,然后使用docker-compose将我的根项目文件夹添加为卷吗?这听起来像个好主意吗?
您可以使用docker-compose中的卷添加项目,但是丢失了很多可移植性(如果没有其他人尝试在没有您的卷数据的情况下使用它,则您的图像将不完整)。您也失去了执行任何编译步骤的能力,并且可能会增加容器启动时间,因为它会引入依赖项。最后,如果你在构建时用尽了空间,那么除非你的体积数据是容器大小的重要部分,否则很有可能在运行中耗尽空间。
如果我忽略.dockerignore上的文件,我可以在Dockerfile中对该文件使用COPY吗?
不,您不能通过.dockerignore在推送到docker守护程序中排除的任何文件上使用COPY或ADD。