当主机上的文件更改时,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.
我正在使用 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.