Skip to main content

一种通知 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启用详细输出:脚本将报告合格容器的启动/停止事件并打印所有检测到的文件更改。

限制

  • 该脚本不会传播到容器文件删除事件。

  • 该脚本需要在容器中安装statchmod实用程序(对于大多数容器,默认情况下应该是这样)。

实施细节

该脚本使用看门狗包来观察主机目录的文件更改事件。一旦触发文件更改事件,脚本就会读取更改文件的文件权限(使用stat util)并使用相同的值(使用chmod util)重写文件权限,从而在容器内触发 inotify 事件。

使用“重写文件权限方法”而不是使用touch util 更新文件上次修改时间。由于触摸会导致事件循环:触摸会触发Windows中的文件更改事件,脚本将处理此事件并再次触摸文件等。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

docker-windows-volume-watcher-1.2.0.tar.gz (6.6 kB 查看哈希

已上传 source

内置分布

docker_windows_volume_watcher-1.2.0-py2.py3-none-any.whl (9.2 kB 查看哈希

已上传 py2 py3