Docker中的FileSystemWatcher不会注意到对本地目录的更改
我的Docker容器中的程序使用FileSystemWatcher来监视本地文件夹。 我用:
docker run -v / c / Users / Support / Desktop / inbox:/ Users / Support / Desktop / inbox -v / c / Users / Support / Desktop / outbox:/ Users / Support / Desktop / outbox -it –name workbeanRun workbean
我使用Docker Exec在运行时查看容器。 它可以看到收件箱和发件箱目录以及其中的任何文件。 但是,当我将新文件放入收件箱时,FileSystemWatcher事件不会触发。 代码没有问题,因为如果我不使用docker容器,它运行良好。
还有什么我需要做的安装directores? 或者FileSystemWatcher甚至可能在一个容器内?
好的,按照要求,这个程序是:
using System; using System.IO; namespace workbean { class Program { FileSystemWatcher watcher = new FileSystemWatcher(); static string sourceDir = "/Users/Support/Desktop/inbox"; static string destDir = "/Users/Support/Desktop/outbox"; static void Main(string[] args) { Console.WriteLine("Testing..."); Program p = new Program(); while (true) { } } public Program() { watcher.Path = sourceDir; watcher.Filter = "*.*"; watcher.Created += new FileSystemEventHandler(OnCreated); watcher.EnableRaisingEvents = true; } static void OnCreated(object source, FileSystemEventArgs e) { string[] files = Directory.GetFiles(sourceDir); foreach (var item in files) { string destDir2 = destDir + "/" + Path.GetFileName(item); File.Move(item, destDir2); } } } }
看来,这是正在发生的事情:
我的本地驱动器上的收件箱文件夹绑定到容器中的收件箱文件夹。 如果你添加文件到另一个,他们出现在另一个。
但是,FileSystemWatcher仅监视容器中的收件箱。 如果我将文件添加到容器中的收件箱,则FileSystemWatcher会触发一个事件。
但是,将文件添加到本地收件箱时,什么都不会发生,因为即使两个文件夹相互关联,FileSystemWatcher也不会监视该文件。
- .Net – 将日志从Web应用程序推送到运行Fluentd的Docker容器
- opencv导入在windows容器中失败(在Windows Server 2016上)
- 检查Linuxfunction来设置线程优先级
- 如何发送邮件在docker上的rabbitmq?
- 无论使用ITicketStore还是IDistributedCache,重新启动服务器时,身份validationCookie都会停止工作
- 使用RestSharp获取“使用Shipyard API时,阻止操作被调用WSACancelBlockingCall”中断
- 通过URLjoin泊坞窗卷
- rabbitmq优雅的出口应该等待事件处理者
- 我怎样才能为DockerDotNet BuildImageFromDockerfile方法创build一个stream?