Shadow SLJS not detecting file changes through Docker mount

90 views Asked by At

When using Shadow CLJS inside a Docker container (using WSL2 on Windows 10 as the Docker host), where the source files are mounted into the container via the Docker interface, it doesn't seem to detect changes in the files and recompile.

Shadow CLJS is started with:

shadow-cljs watch app

And it compiles the app and starts the development server just fine. But changing a file through the Docker host filesystem doesn't trigger a rebuild by the Shadow process.

I don't see any configuration options to configure how Shadow CLJS polls for file changes; is it possible to turn on more manual polling for changes? Or what needs to be updated to allow Shadow to see that these files are updating?

1

There are 1 answers

0
Thomas Heller On

There is currently no separate polling watcher available for shadow-cljs. There used to be hawk but that broke with macOS Big Sur and was removed.

shadow-cljs uses the default JVM WatchService. I don't know if there are any JVM options that can be set to turn this into a polling watcher? I'd expect this to be a common problem for JVM based stuff in Docker so I'd suspect that there is some kind of solution in the JVM, but I don't know it.