Tengo una máquina virtual ubuntu a la que accedo a través de Vagrant. En mi host (Mac OSX), hay una carpeta con un par de archivos que comparto en la máquina virtual. En esa máquina virtual, quiero usar guard para vigilar los cambios de archivos y realizar alguna acción si alguno de esos archivos cambia.
Configuré guardia correctamente, y cuando cambio el archivo compartido desde la máquina virtual, funciona bien y ejecuta los scripts apropiados. Pero, si trato de cambiar el archivo compartido desde mi máquina host, este evento de cambio de archivo no se propaga y la protección no reacciona.
Así es como se ve mi carpeta compartida vagabunda (cosas bastante habituales)
local_config.vm.share_folder "app", "/var/www/app/current", "../app"
Incluso intenté usar NFS sharing ( :nfs => true
) pero no me ayudó.
¿Hay alguna forma de hacer que los eventos de cambios de archivos se propaguen desde el host a la máquina virtual? ¿O es algo de naturaleza Vagrant / VirtualBox?
ACTUALIZAR:
Después de algunas pruebas más, instalé ZenTest gem, que contiene la herramienta de prueba automática que permite una funcionalidad similar con respecto a los eventos de cambio de archivo.
Al ejecutar la prueba automática en la máquina virtual y cambiar los archivos desde mi máquina host, estos cambios se propagan y la prueba automática reacciona .
En base a esto, parece que la propagación del evento de cambio de archivo es una cuestión de protección, no vagabundo o caja virtual.
Sin embargo, no he examinado las diferencias de implementación entre guard y autotest.
Ahora sé que es posible detectar eventos de cambio de archivo desde el host en la máquina virtual. ¿Alguien tiene alguna idea sobre cómo lograr esto usando guardia? Me gusta más la guardia debido a su DSL y usabilidad genérica.
fuente
Sé que esta es una pregunta anterior, pero aquí hay una respuesta más actualizada:
-o/--listen-on
Documentación de la opción de guardiaPegado aquí para referencia rápida:
fuente
Si alguien se encuentra con este problema y la protección aún no funciona ...
Terminé usando watchr . Es una alternativa a la guardia. La propagación de eventos desde el host a la máquina invitada funciona bien en watchr. También es más flexible que el autotest.
fuente
Events propagation from host to guest machine works ok in watchr.
¿Cómo? ¿Utiliza encuestas? Si VirtualBox no propaga los eventos, ¿cómo puede saber cuándo ha cambiado un archivo?