inotify-proxy
inotify-proxy copied to clipboard
A utility to help detect file changes in docker containers where filesystem is mounted by NFS. It's much more powerful and faster than other similar solutions.
inotify-proxy
This tools helps to detect changed files in Docker Containers or in Virtual Machines (e.g. Vagrant). If a file is changed from host system a file watcher inside the container detects the change and triggers an inotify event.
The tool is designed to run over a longer period of time. It comes with a garbage collector to cleanup old watched files in memory.
Installation is simple -> It's one binary which can be downloaded and executed.
Purpose
Enables file watcher in a Docker Container/Virtual Machine with a NFS mounted filesystem.
Installation
- Download compiled application on release page: https://github.com/cmuench/inotify-proxy/releases
- Extract the zip/tarball.
- Run
./inotify-proxybinary.
See Wiki page for more informations. https://github.com/cmuench/inotify-proxy/wiki/Installation
Usage
Usage of ./inotify-proxy:
-no-config
Do not load config.
-profile string
Defines a special profile with extensions to look for. This speeds up the process. Available profiles are 'magento2-theme' (default "default")
-sleep int
Cycle time in seconds. Defines time to sleep after each filesystem walk. Default 2s (default 2)
Examples
# Magento 2 Profile
./inotify-proxy -profile magento2 path/to/your/project
# Change frequence of file checks to 5s (default 2s)
./inotify-proxy -sleep 5 path/to/your/project
# Multiple pathes to watch ...
./inotify-proxy project/path1 project/path2
Config
If the file inotify-proxy.yaml exist in the current working directory, it will be applied.
Example config:
---
watch:
- directory: /tmp/watch1
profile: magento2
- directory: /tmp/watch2
profile: sass
- directory: /tmp/watch3
extensions: [.css, .html]
The profile setting is optional.
The config loading can be skipped by adding the option -no-config.
Supported Profiles
| Profile | Allowed file extensions |
|---|---|
| default | All extensions are allowed |
| javascript | .js .ts |
| less | .less |
| magento2 | .css .html .less .sass .js .php .phtml .ts .xml |
| magento2-theme | .css .hs .less .sass .ts |
| sass | .sass .scss |
| vue-storefront | .css .js .sass .ts |