代码之家  ›  专栏  ›  技术社区  ›  Afshin Mehrabani Mohd Jafar

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

  •  0
  • Afshin Mehrabani Mohd Jafar  · 技术社区  · 6 年前

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

    我使用的是Debian(主机)、VirtualBox和minikube 0.25.2。

    有人知道原因是什么吗?

    2 回复  |  直到 6 年前
        1
  •  1
  •   d0bry    6 年前

    Minikube 使用 VirtualBox 默认安装时,使用Linux vm在内部执行Docker。 装载的资源未直接指向目标,原因是 OverlayFS 限制 它可能会导致minikube vm在文件系统级别损坏。

    您可能会考虑使用--vm driver=none运行minikube。

        2
  •  0
  •   Yuankun    6 年前

    我猜是你编辑了 FILE 使用VIM之类的编辑器。如果我错了,请纠正我。

    VIM不会就地更改文件,而是将内容保存到新文件中,并复制新文件以覆盖旧文件。这打破了基于inode和inotify功能的装载机制。

    您可以看到inode的更改:

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