当主机上的文件更改时,Minikube 挂载不会通知容器

Minikube mount doesn't notify container when files change on the host

我正在使用 minikube mount 将文件系统从主机挂载到 minikube,然后再挂载到容器 (pod)。当我在容器中执行 tail -f FILE 并从主机更改 FILE 时,我看不到更改。但是,当我再次关闭 tail 和 运行 时,它会再次从文件系统读取文件并且工作正常。

我正在使用 Debian(主机)、VirtualBox 和 minikube 0.25.2。

有谁知道可能是什么原因?

我的猜测是您使用 VIM 等编辑器编辑了 FILE。如果我错了,请纠正我。

VIM不会原地改变文件,而是将内容保存到新文件中,然后复制新文件覆盖旧文件。这破坏了基于 inode 和 inotify 功能的挂载机制。

可以看到inode变化:

$ stat testfile
... Inode: 1181459
$ vim testfile    # and do some change
$ stat testfile
... Inode: 1181460

Minikube use a VirtualBox with Linux vm默认安装里面执行Docker。 由于 OverlayFS 限制,装载的资源未直接指向目的地。 它可能会导致 minikube 虚拟机在文件系统级别损坏。

您可能会关注 运行 minikube --vm-driver=none.