Nodemon не перезагружается в среде Windows Docker

Моя цель - настроить контейнер Docker, который автоматически перезапускает сервер NodeJS, когда изменения файла обнаруживаются с главной машины.

Я выбрал nodemon для просмотра файлов для изменений.

В средах Linux и Mac nodemon и docker работают безупречно.

Однако, когда я нахожусь в среде Windows, nodemon не перезапускает сервер.

Файлы обновляются на хост-машине и связаны с параметром volumes в файле docker-compose.yml.

Я вижу, что файлы были изменены при запуске docker exec <container-name> cat /path/to/fileChanged.js. Таким образом, я знаю, что файлы связаны правильно и были изменены в контейнере.

Есть ли причина, по которой nodemon не перезапускает сервер для Windows?

Ответ 1

Используйте nodemon --legacy-watch для опроса изменений файлов вместо прослушивания событий файловой системы.

VirtualBox не передает события файловой системы через vboxfs share на вашу виртуальную машину Linux. Если вы используете Docker для Windows, значит, HyperV не будет распространять события файловой системы.

Ответ 2

Это просто, в соответствии с документа вы должны изменить:

nodemon server.js

чтобы:

nodemon --legacy-watch server.js