我想使用nodemon在项目文件更改时重新启动项目。我认为nodemon的工作原理是监听inotify事件来触发重新加载node.js项目。
项目在docker容器中运行,项目文件在装入的卷中。
从docker容器内部编辑项目文件时,例如

docker-compose exec dev vim server.js

nodemon正常工作并重新启动服务器。
但是,当使用主机上运行的编辑器时,nodemon不会获取更改并重新启动程序。
docker容器中文件的内容实际上发生了变化,所以我怀疑这样编辑文件不会触发FS事件。
是否可以将此设置为在主机上编辑文件会导致Docker容器中发生文件系统事件?为什么这还没有发生?
平台信息:
Windows的Docker(Hyper-V)
node码头集装箱
WebStorm——基于主机的编辑器

最佳答案

当Docker在Hyper-V中运行并且更改发生在主机上时,文件系统事件似乎不起作用。但是,可以通过在nodemon中启用轮询来解决这个限制:

nodemon -L server.js

在webtorm中,最终被使用的完整命令是
docker-compose run dev node node_packages/nodemon/bin/nodemon.js -L server.js

更多信息:
https://github.com/remy/nodemon#application-isnt-restarting

关于node.js - 在主机上更改已装入卷中的文件时,未在docker容器中触发文件系统事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56247919/

10-12 17:19
查看更多