Solución:
Parece que está buscando una sincronización bidireccional. Si mi entendimiento es correcto, esta respuesta te ayudará. Tenga en cuenta que todavía no los he probado. Parece que la clave es usar virtualbox
tipo de sincronización.
type (cadena): el tipo de carpeta sincronizada. Si no se especifica, Vagrant elegirá automáticamente la opción de carpeta mejor sincronizada para su entorno. De lo contrario, puede especificar un tipo específico como “nfs”.
config.vm.synced_folder '../src', '/home/vagrant/src', type: "virtualbox"
Entonces de nuevo de acuerdo con este documento,
Si está utilizando el proveedor de Vagrant VirtualBox, las carpetas compartidas de VirtualBox son el tipo de carpeta sincronizada predeterminada. Estas carpetas sincronizadas utilizan el sistema de carpetas compartidas de VirtualBox para sincronizar los cambios de archivos del invitado al host y viceversa.
Por lo tanto, no estoy seguro de por qué su tipo predeterminado no es virtualbox. De todos modos, supongo que vale la pena intentarlo. Más adelante en los documentos, parece haber un error en el tipo de caja virtual explicado en los documentos. Siga los pasos aquí si va a utilizar el tipo de sincronización de caja virtual.
Mi Vagrantfile
Se ve como esto:
Vagrant.configure(2) do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 22, host: 10170, id: "ssh"
config.vm.provision :shell, path: "VagrantProvision.sh"
config.vm.synced_folder "./", "/var/beeGame"
end
¡Como puede ver aquí tengo la misma declaración que la suya! Aquí mi repositorio (puedes probarlo como ejemplo), ¡y me funciona! Utilizo PhpStorm para abrir este repositorio y editar archivos y todas las actualizaciones automáticamente y sincronizar desde mi máquina host (mi computadora portátil) a la máquina invitada (virtual).
En tu caso, lo estás haciendo bien, y vagrant tiene que sobrescribir todos los contenidos de /home/vagrant/src
con los de ../src
. ¡Es el comportamiento correcto! Necesitas poner tu código en src
dir en su máquina host (su computadora portátil) no en su máquina invitada (virtual)!
He determinado que el problema no es ese config.vm.synced_folder '../src', '/home/vagrant/src'
sobrescribe / home / vagrant / src. El problema es que home / vagrant / src se convierte en un nuevo tipo de directorio diferente en el sistema de archivos que está vacío. Entonces, uno simplemente tiene que volver a llenarlo después de configurar el directorio compartido. Entonces…
- en invitado:
sudo mv home/vagrant/src home/vagrant/src-back
- detener invitado
- agregue una nueva carpeta sincronizada a Vagrantfile:
config.vm.synced_folder '../src', '/home/vagrant/src'
- iniciar invitado
- en invitado:
sudo mv home/vagrant/src-back/* home/vagrant/src-back/
Y las cosas deberían funcionar bien en el futuro.