brn*_*gyn 5 virtualbox inotify fsevents vagrant docker
我知道有多个线程讨论NFS安装卷和文件修改监视问题。由于大多数讨论都是旧的,有些是 8 年前的,所以我的目标是编译一些并再次提出它们,以检查你们用来处理这些问题的最新解决方案是什么。
核心问题
Linux 依赖于inotify一个内核子系统,在文件被修改(更改/删除)时生成事件,而这些事件最常被开发人员工具用来监视文件以触发某些任务。核心问题是,当您通过 NFS 协议共享卷/文件夹时,它不会生成事件,因此工具需要使用轮询方法而不是基于事件触发。
轮询方法通常会产生多个问题,例如 CPU 使用率高、文件更改导致任务触发延迟等。
一些观看工具:
热门话题
不错的解决方案尝试
我当前的挑战
我们使用 macOS 作为主机,使用 Vagrant(提供者 Virtualbox)和 Alpine Linux 作为来宾,以及用于服务的 Docker 容器(Node、NGINX...)来运行我们的开发环境,除了以下情况之外,所有设置都运行顺利:前端开发人员需要使用 webpack watch 功能来监视文件修改。它适用于轮询,但有 3-10 秒的延迟。
关于如何解决这个问题有任何更新或建议吗?
小智 0
我已经能够通过将actimeo NFS 选项设置为 1 来解决此问题。这会缩短 NFS 缓存文件系统属性的时间长度,这似乎可以使主机和来宾保持接近同步。Webpack Watch 现在几乎可以立即为我接收更改。
这是我用来实现此 NFS 共享的 VagrantFile 设置。注意mount_options设置
config.vm.synced_folder "./my_host_syncd_folder", "/guest/path", type: 'nfs', mount_options: ['actimeo=1']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1162 次 |
| 最近记录: |