【发布时间】:2019-05-24 18:55:48
【问题描述】:
我的docker-compose.yml 文件中有以下内容:
volumes:
- .:/var/www/app
- my_modules:/var/www/app/node_modules
我这样做是因为我的主机上没有node_modules,并且所有内容都安装在映像中并且位于/var/www/app/node_modules。
对此我有两个问题:
在我的主机中创建了一个名为
node_modules的空文件夹。如果我在.yml文件的列表中添加另一个卷(命名或匿名),它将显示在包含我的.yml文件的同一文件夹中的主机目录中。从this 的答案来看,这似乎与这两个映射同时进行的事实有关。但是,为什么我的主机上的文件夹是空的?它不应该是 a) 包含命名卷中的文件还是 b) 根本不显示在主机上?Docker 如何知道在初始化卷时检查底层的
/var/www/app/node_modules而不是仅仅说“哦,node_modules不存在”(因为我假设主机绑定挂载发生在命名卷被初始化之前,因此/var/www/app不应再有一个名为node_modules的文件夹。当我在我的主机上创建一个示例node_modules文件夹和一个新卷同时保留my_modules:/var/www/app/node_modules时,它似乎甚至可以工作——它似乎仍然使用图像中的node_modules,而不是主机(这不是我所期望的,虽然不是不需要的)。
【问题讨论】:
标签: docker docker-compose dockerfile