I am running grails application on:
- Docker Container which is running on…
- VirtualBox VM Boot2docker which is running on…
- MacOSX workstation.
The code directory is on MAC which is shared on VM and then from VM, it is mapped inside Docker container using -v option.
This way I can do development on my workstation and the Grails application at the bottom should (ideally) detect changes and recompile/reload on the fly. This is a feature that used to work when I was running the same application straight on the MacOSX, but now grails seems totally unaware of file changes. Of course, if I open the files with an editor (inside the Docker container) they are indeed changed and in fact if I stop/restart the grails app the new code is used.
I don’t know how grails implements the watch strategy, but if it depends on some operating system level feature I suspect that file change notifications get lost somewhere in the chain.
Anyone has an idea of what could be the cause and/or how I could go about debugging this?
In the latest release of docker (v1.10.1), docker seems to have addressed this issue and is working fine with nodejs as described in this video (https://www.youtube.com/watch?v=9CuClvKMt04 by Mano Marks, Docker Developer Relations Director). However this issue still exists when it comes to Grails.
Currently, we are relying on docker-osx-dev tool which keeps rsyncing the shared folders.