如何在Vagrant中使用VirtualBox启用双向文件夹同步?

Ant*_*ich 11 virtualbox vagrant

我有一段时间没在Linux上使用过Vagrant.当我开始使用新版本(Vagrant 1.8)时,我遇到了一个问题:在来宾VM中创建的文件没有出现在主机的同步文件夹中.

如何强制Vagrant将来宾操作系统中的文件同步到主机操作系统?

Ant*_*ich 14

根据文档,当未指定Vagrantfile中的type选项config.vm.synced_folder参数时,Vagrant会尝试选择最佳可用选项:

type(字符串) - 同步文件夹的类型.如果未指定,则Vagrant将自动为您的环境选择最佳的同步文件夹选项.否则,您可以指定特定类型,例如"nfs".

从版本1.5开始,Vagrant 引入了新的"rsync同步文件夹"功能.

所以在我的情况下rsync,自动选择了类型,即单向同步:从主机到访客.

为了使文件夹以双向同步,我在Vagrantfile中添加了显式定义:

config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
Run Code Online (Sandbox Code Playgroud)

当然,这只适用于VirtualBox.

双向同步对于工作流很有用,其中客户机上的应用程序创建文件,例如,现代Web框架中的数据库迁移文件.

注意:当项目包含大量文件时,virtualbox同步文件夹会出现已知的性能问题.

  • @AlexHendren在2018年,您可以使用vagrant-vbguest插件自动在客户系统上安装主机的VirtualBox Guest Additions.通过`vagrant plugin install vagrant-vbguest`安装它 (2认同)