Есть ли способ несинхронизировать подпапку в Vagrant?
В моей папке проекта есть несколько подпапок, которые не нужно синхронизировать с гостевой машиной. (В частности, папка .git, содержащая > 800 файлов.) Есть ли способ несинхронизировать подпапки синхронизированной папки в Vagrant? Или как я могу предотвратить синхронизацию ненужных папок?
Отключение синхронизации таким образом не работает, когда /vagrant/
синхронизируется по умолчанию:
config.vm.synced_folder "www/kisa/.git/", "/vagrant/www/kisa/.git/", disabled: true
Ответы
Ответ 1
Обычно (с vboxsf, vmhgfs, NFS,...) синхронизация выполняется путем установки указанного каталога с хоста на гостя. По соображениям производительности не должно быть необходимости помешать некоторому контенту "синхронизировать", поскольку данные не передаются, если вы не получите доступ к нему от гостя. Если вы записываете данные на гостя, но не хотите синхронизировать их с хостом, проще всего записать его в другом месте. =)
Предстоящий Vagrant 1.5 будет включать синхронизированные папки rsync, которые будут поддерживать опцию rsync__exclude
. Некоторые плагины облачных провайдеров (aws, digital_ocean,..) уже используют rsync, но поддержка для исключения зависит от поставщика. В некоторых случаях вам просто нужно синхронизировать только нужные папки по отдельности. Вы можете отключить синхронизацию по умолчанию с помощью
config.vm.synced_folder ".", "/vagrant", disabled: true
Ответ 2
Я не могу притворяться, что понимаю это, но метод, показанный на this., кажется, работает для меня для Linux (Ubuntu) гость на хосте Windows 7.
Я хотел использовать его именно так, как он описывает, - чтобы исключить общий каталог node_modules.
В случае исчезновения ссылки сущность:
$ mkdir ~/vagrant_node_modules
$ sudo mount --bind ~/vagrant_node_modules /vagrant/node_modules
так что /vagrant
является общим, но /vagrant/node_modules
не является.
Кто-то, более осведомленный, чем я, может знать, есть ли проблемы с этим.