web-dev-qa-db-ja.com

NodemonがWindows Docker環境で再起動しない

私の目標は、ホストマシンからファイルの変更が検出されたときにNodeJSサーバーを自動的に再起動するDockerコンテナーをセットアップすることです。

ファイルの変更を監視するためにnodemonを選択しました。

LinuxおよびMac環境では、nodemonとdockerは問題なく動作しています。

ただし、Windows環境の場合、nodemonはサーバーを再起動しません。

ファイルはホストマシンで更新され、私のdocker-compose.ymlファイルのvolumesパラメーターを使用してリンクされます。

docker exec <container-name> cat /path/to/fileChanged.jsを実行すると、ファイルが変更されたことがわかります。このようにして、ファイルが正しくリンクされ、コンテナで変更されていることがわかります。

nodemonがWindowsのサーバーを再起動しない理由はありますか?

22
RyanNHG

使用する - nodemon --legacy-watch ファイルシステムイベントをリッスンする代わりに、ファイルの変更をポーリングします。

VirtualBox vboxfs共有を介してファイルシステムイベントを渡さない をLinux VMに渡します。 Docker for Windowsを使用している場合、HyperVはファイルシステムイベントも伝達しないように見えます。

39
Matt

doc によると、変更する必要があります。

nodemon server.js

に:

nodemon --legacy-watch server.js
3
Masih Jahangiri

これはWindows用のdockerの問題でした。今では修正されています

https://www.docker.com/blog/new-filesharing-implementation-in-docker-desktop-windows/

0
Mukesh Agarwal