inotify-proxy
v2.0.6
Published
Trigger inotify events within Docker containers across VirtualBox shared volumes
Downloads
13
Readme
inotify-proxy
A utility to help with development within Docker containers on Windows and OSX.
Containers run on Windows or OSX through docker-machine or boot2docker are running within a VirtualBox virtual machine. Files can be shared between the host operating system and the container through shared volumes. This allows the developer to continue to use their editor of choice while building and running their code inside the container.
Unfortunately, VirtualBox does not trigger inotify events within the container when a file is modified on the host system. This issue is described here:
- https://www.virtualbox.org/ticket/10660
- https://www.virtualbox.org/ticket/14234
Workflows that rely on inotify events to trigger build processes are limited by this issue.
inotify-proxy
is a small utility to restore these build processes. It polls for
filechanges, then touches those files again inside the container, triggering the
necessary inotify events.
Usage
inotify-proxy
must be run inside a container. It will monitor all files and descendents
of the directory it is run from. It has been packaged as a NPM module.
Within the Docker container, install:
npm install --save-dev inotify-proxy --no-bin-links
And, add this entry to your package.json
:
{
"scripts": {
"watch": "./node_modules/inotify-proxy/bin/inotify-proxy"
}
}
Then, run this command:
npm run watch
Once running, inotify-proxy
will initially list all of the files it is monitoring.
When one of those files changes the name of the changed file will be displayed.
Any build processes running in that container and listening for changes on that file will
be triggered.
Ignores files in the ./node_modules
directory. You can specify additional
directories and files to exclude, via inotify-proxy
's arguments.
inotify-proxy [ignored-file-or-directory...]
To reduce the overhead of polling for changes, polling is only run once per second.