【问题标题】:File system events not triggered in docker container when files in mounted volume are changed on the host在主机上更改挂载卷中的文件时,不会在 docker 容器中触发文件系统事件
【发布时间】:2019-10-08 09:59:55
【问题描述】:

我想在文件更改时使用 nodemon 重新启动我的项目。我认为 nodemon 通过侦听 inotify 事件来触发重新加载 node.js 项目来工作。

项目在 docker 容器中运行,项目文件在挂载的卷中。

例如,从 docker 容器内部编辑项目文件时

docker-compose exec dev vim server.js

nodemon 正常工作并重新启动服务器。

但是,当使用在主机上运行的编辑器时,nodemon 不会获取更改并重新启动程序。

docker 容器中文件的内容确实发生了变化,所以我怀疑以这种方式编辑文件不会触发 FS 事件。

是否可以这样设置,以便在主机上编辑文件会导致 Docker 容器中发生文件系统事件?为什么这还没有发生?

平台信息:
  • Docker for Windows (Hyper-V)
  • node码头集装箱
  • WebStorm -- 基于主机的编辑器

【问题讨论】:

标签: node.js linux docker nodemon inotify


【解决方案1】:

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

nodemon -L server.js

在 WebStorm 中,最终被使用的完整命令是

docker-compose run dev node node_packages/nodemon/bin/nodemon.js -L server.js

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-20
    • 2017-12-20
    • 2018-12-18
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2019-01-03
    • 2022-01-23
    相关资源
    最近更新 更多