Mam maszynę wirtualną Ubuntu, do której uzyskuję dostęp za pośrednictwem Vagrant. Na moim hoście (Mac OSX) znajduje się folder z kilkoma plikami, które udostępniam maszynie wirtualnej. Na tej maszynie wirtualnej chcę użyć wartownika, aby obserwować zmiany plików i wykonać pewne czynności, jeśli którykolwiek z tych plików się zmieni.
Ustawiłem poprawnie straż, a kiedy zmieniam udostępniony plik z maszyny wirtualnej, działa dobrze i uruchamia odpowiednie skrypty. Ale jeśli spróbuję zmienić udostępniony plik z mojego komputera hosta, to zdarzenie zmiany pliku nie propaguje się, a straż nie reaguje.
Tak wygląda mój włóczęga udostępniony folder (całkiem zwyczajne rzeczy)
local_config.vm.share_folder "app", "/var/www/app/current", "../app"
Próbowałem nawet używać NFS sharing ( :nfs => true
), ale to nie pomogło.
Czy jest jakiś sposób, aby zdarzenia zmian plików były propagowane z hosta na maszynę wirtualną? Czy jest to coś z natury Vagrant / VirtualBox?
AKTUALIZACJA:
Po kilku próbach zainstalowałem klejnot ZenTest , który zawiera narzędzie autotestu, umożliwiające podobną funkcjonalność dotyczącą zdarzeń zmiany plików.
Po uruchomieniu autotestu na maszynie wirtualnej i zmianie plików z mojego hosta zmiany te są propagowane i autotest reaguje .
Na tej podstawie wydaje się, że propagacja zdarzeń zmiany pliku jest kwestią ochrony, a nie włóczęgi lub wirtualnego pudełka.
Nie analizowałem jednak różnic w implementacji między ochroną a autotestem.
Teraz wiem, że można wychwycić zdarzenia zmiany pliku z hosta na maszynie wirtualnej. Czy ktoś ma jakiś pomysł, jak to osiągnąć za pomocą wartownika? Bardziej lubię strzec ze względu na DSL i ogólną użyteczność.
źródło
Wiem, że to starsze pytanie, ale tutaj jest bardziej aktualna odpowiedź:
Straż
-o/--listen-on
dokumentacja opcjaWklejono tutaj w celu szybkiego odniesienia:
źródło
Jeśli ktoś napotka ten problem, a ochrona nadal nie działa ...
Skończyło się na watchr . Jest to alternatywa dla straży. Propagacja zdarzeń z hosta na maszynę gościa działa poprawnie w watchr. Jest także bardziej elastyczny niż autotest.
źródło
Events propagation from host to guest machine works ok in watchr.
W jaki sposób? Czy używa odpytywania? Jeśli VirtualBox nie propaguje zdarzeń, to skąd może wiedzieć, kiedy plik się zmienił?