在Docker容器内使用webpack-dev-server轮询 - CPU使用率高

11
我正在Docker容器中运行webpack-dev-server。为了开发目的,我将本地目录绑定到Docker容器上。据我所知,webpack的标准“watch”功能在Docker内部不起作用,或者至少不适用于绑定到主机的卷。
但是,如果我打开轮询(watchOptions.poll: true),Docker容器会使用大量CPU。我可以将轮询时间降低到1000ms甚至5000ms,但这仍然会使用相当数量的CPU,足以使我的笔记本电脑的风扇开始旋转。
是否有任何关于限制轮询webpack-dev-server CPU使用的最佳实践?我可以在基于Linux的Docker容器中安装任何东西吗?我尝试安装了最新的inotify-tools,但似乎没有起作用。

你的开发电脑运行的是哪个操作系统?由于文件系统抽象化,这可能会产生重大影响。我假设你使用的是Mac,因为你遇到了这个问题,但最好澄清一下! - Abulafia
2个回答

2
我所使用的解决方案是docker-sync工具。
它在一个容器中运行,并且使用rsync来保持Docker卷同步。更新会触发Docker的文件系统监听器,因此您可以“监听”而不是“轮询”。

1
对于Windows 10 2004和Docker Desktop WSL2后端,webpack-dev-server可以在绑定到WSL2目录的Docker容器卷中正常工作,但不能在绑定到Windows目录的卷中工作。
我使用带有remote-containers扩展的VSCode。
我通过命令面板在VSCode中打开\\wsl$\Ubuntu-18.04\home\...,然后重新在容器中打开。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接