我有要通过Vagrant访问的ubuntu虚拟机。在我的主机(Mac OSX)上,有一个包含几个文件的文件夹,我将它们共享到虚拟机。在该虚拟机中,我想使用防护来监视文件更改并在其中任何文件更改时执行一些操作。
我正确设置了防护功能,并且在虚拟机中更改共享文件时,它可以正常运行并运行适当的脚本。但是,如果我尝试从主机更改共享文件,则此文件更改事件不会传播,并且防护也不会做出反应。
这就是我无业游民的共享文件夹的样子(很普通的东西)
local_config.vm.share_folder "app", "/var/www/app/current", "../app"
我什至尝试使用NFS共享(:nfs => true
),但没有帮助。
有什么方法可以使文件更改事件从主机传播到虚拟机?还是这是Vagrant / VirtualBox的本质?
更新:
经过更多的试验后,我安装了ZenTest gem,它包含自动测试工具,该工具允许有关文件更改事件的类似功能。
在虚拟机中运行自动测试并从我的主机更改文件时,这些更改会传播并自动测试做出反应。
基于此,文件更改事件的传播似乎是警惕的问题,而不是无所事事或虚拟的盒子。
我还没有研究过保护和自动测试之间的实现差异。
现在,我知道可以从虚拟机中的主机捕获文件更改事件。有谁知道如何使用后卫来实现这一目标?我更喜欢警卫,因为它具有DSL和通用的可用性。