一种通知 Docker 容器有关 Windows 上挂载更改的工具。
项目描述
此脚本监视 Windows 主机上 Docker 容器的目录绑定,并通知容器有关文件更改。
该脚本旨在解决 Windows 主机上的文件更改事件传播问题。由于 Linux 内核中 CIFS 实现的限制,Windows 的 Docker 不会将主机挂载文件夹中的文件更改事件传播到容器。这个问题导致现代框架(例如 Jekyll、ng-cli 等)开发服务器的监视模式无用,因为容器不会收到有关文件更改的通知。Docker 社区论坛上描述了这个问题。
安装
该脚本可以使用 pip 安装(支持 Python 2 和 3)。
pip install docker-windows-volume-watcher
用法
监控所有容器的所有目录绑定。该脚本将侦听容器启动/停止事件并通知所有正在运行的容器有关文件更改的信息。
docker-volume-watcher
仅监视容器container_name的绑定。
docker-volume-watcher container_name
仅监视container_name与主机目录C:\some\directory的绑定。
docker-volume-watcher container_name C:\some\directory
您还可以使用*和?指定通配符 人物。例如:仅监视名称包含myproject的容器与以C:\project\folder\开头的目录的绑定。
docker-volume-watcher *myproject* C:\project\folder\*
不要监视匹配*.git*和*build*模式的文件/目录:
docker-volume-watcher -e "*.git*" "*build*"
如果您遇到重复通知问题(例如重复通知 - 单个更改会触发 2 个容器通知),请尝试事件去抖动功能:
docker-volume-watcher --debounce 0.1
使用标志-v启用详细输出:脚本将报告合格容器的启动/停止事件并打印所有检测到的文件更改。
限制
该脚本不会传播到容器文件删除事件。
该脚本需要在容器中安装stat和chmod实用程序(对于大多数容器,默认情况下应该是这样)。
实施细节
该脚本使用看门狗包来观察主机目录的文件更改事件。一旦触发文件更改事件,脚本就会读取更改文件的文件权限(使用stat util)并使用相同的值(使用chmod util)重写文件权限,从而在容器内触发 inotify 事件。
使用“重写文件权限方法”而不是使用touch util 更新文件上次修改时间。由于触摸会导致事件循环:触摸会触发Windows中的文件更改事件,脚本将处理此事件并再次触摸文件等。
项目详情
docker_windows_volume_watcher -1.2.0-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 11b19d05ea2349ed8ee5f7dc5a129ee4dfb3995188c7636f5e54b36ca76df296 |
|
| MD5 | faad6a90d561779bdf45119366a5f6fd |
|
| 布莱克2-256 | 3cd69aeb009a6ba93e24c1cdff619e4e538c36ade89cbed6f2238b816504e734 |