用于通知Docker Contianers有关在Bash for Windows上装载的更改的工具。

docker-bash-volume-watcher的Python项目详细描述


这个fork接受了merofeev的docker-windows-volume-watcher,并使其与bash for windows(在windows上也称为ubuntu)一起工作

脚本监视Windows主机上Docker容器的目录绑定,并将文件更改通知容器。

该脚本旨在解决windows主机上的文件更改事件传播问题。由于Linux内核中CIFS实现的局限性,Docker for Windows不会将主机挂载文件夹中的文件更改事件传播到容器。这个问题使得现代框架(如jekyll、ng cli等)开发服务器的监视模式变得无用,因为容器不会被通知文件更改。这个问题在Docker Community Forums中描述

安装

此脚本可以与pip一起安装(均支持python 2&3)。

pip install docker-bash-volume-watcher

用法

监视所有容器的所有目录绑定。脚本将侦听容器的启动/停止事件,并将文件更改通知所有正在运行的容器

docker-volume-watcher

仅监视容器container_name的绑定。

docker-volume-watcher container_name

仅监视子目录/not_node_modulescontainer_name的绑定。

docker-volume-watcher container_name /not_node_modules

您还可以使用*?字符指定通配符。例如:仅监视名称包含myproject的容器的绑定

docker-volume-watcher *myproject*

使用标志-v启用详细输出:脚本将报告合格容器的启动/停止事件并打印所有检测到的文件更改

限制

  • 脚本不会传播到容器文件删除事件
  • 脚本要求在容器中安装statchmod实用程序(对于大多数容器,默认情况下应该是这样)

实施细节

脚本使用watchdog包来观察主机目录的文件更改事件。一旦触发文件更改事件,脚本将读取已更改文件的文件权限(使用statutil),并使用相同的值(使用chmodutil)重写文件权限,从而触发容器内的inotify事件。

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带Maven的Eclipse Java存储库:缺少工件:compile   java如何以编程方式停止RMI服务器并通知所有客户端   java Roboguice抛出ClassNotFoundException:AnnotationDatabaseImpl   java为什么lucene 4.0删除IndexWriter类的两个构造函数?   nls如何避免java项目上不需要的日志消息?   测试无法在Selenium Webdriver(java)中定位iframe   使用XML的java servlet   java如何使用jxl用****屏蔽单元格   java使用SQLite从数据库中选择“没有这样的列”   导入扫描程序后出现java编译错误   插入查询的java空指针异常   使用创建PostgreSQL数据库。Java应用中的sql脚本   java使用jsoup将HTML解析为格式化的明文