我遇到了一个奇怪的问题:我从一个主机到RW模式的容器挂载文件,然后我编辑此文件主机但它没有在容器中更新。主机和内部容器上的相同文件是不同的,它不是与其原来的同步
这是从docker inspect <container>
的输出的提取物:
"Mounts": [
...
{
"Type": "bind",
"Source": "/home/a_user/projects/drupal/d8-default/composer.json",
"Destination": "/var/www/d8-default/composer.json",
"Mode": "rw",
"RW": true,
"Propagation": ""
},
...
]
您可能看到,该文件被安装为读写模式作为一个单独的安装。现在,当我在主机上编辑它时,它不会在容器中更改。我通过登录容器并在其外部进行简单的cat composer.json
来看到这一点。
我和随机文件进行额外的测试,这里是我发现:
如果正在编辑位于一个目录(安装在RW模式)的文件,然后更改立即出现在其容器的副本。
如果一个文件被直接挂载,那么根本不会传输更改,看起来容器似乎正在维护它自己的文件版本!
事实上,这是非常不受欢迎的行为,它打破了我的工作流程,我还没有找到克服这种不一致的解决方案。欢迎任何建议。
是的,谢谢。我也发现这个讨论:https://unix.stackexchange.com/questions/44373/single-bind-mounted-file-gets-out-of-sync-in-linux 我的解决方法是停止使用file-我一直在重新构建我的项目的结构以仅使用目录装载。 – Onkeltem