vagrant_synced_folders 这里我们添加一些需要在主机与虚拟机之间的同步目录,或者叫共享目录 ..
默认 trellis 给我们配置了几个共享目录 .. 比如我们项目下面的 site 目录跟虚拟机上的某个目录是同步的 .. 回到 vagrantfile,搜索一下 synced_folder ..
配置共享目录,用的是 config.vm.synced_folder .. 后面先是这个同步目录在本地的位置,然后是同步目录在虚拟机上的位置 .. type 设置了这个共享目录的类型 ..
不设置这个类型的话,如果虚拟机用的是 virtualbox ,会使用 virtualbox 默认的共享目录的类型,不过性能非常差 .. 而且你还需要在虚拟机上安装 vbguest ,才能设置共享目录 ..
nfs 类型的共享目录性能更好 .. 不过你会遇到权限问题 .. 这里 trellis 用了 bindfs 解决了这个权限问题 ..
你会发现,下面用了 vagrant 的 bindfs 插件的 bind_folder ,重新又绑定了一个这个共享目录 .. 这里又设置了这个目录的 user,就是拥有者,默认是 vagrant, 还有 group ,群组的名字是 www-data ..
下面这里,用了 vconfig.fetch ,提取了配置文件里的 vagrant_synced_folders ,然后循环地去设置一些自定义的同步目录 ..
配置
再回到这个配置文件,我们可以添加一个自定义的同步目录 .. 先在本地主机上去创建一个目录 ... 比如 demo,里面再添加一个 hello.txt ..
在这个 vagrant_synced_folders 里面添加一个项目 .. 一个小横线,表示一个项目 .. local_path 是同步目录在本地主机上的位置 .. 这里就是相对于 vagrantfile 的某个目录,比如 ../demo,表示上一级目录下面的 demo 这个目录 ..
destination 是同步目录在虚拟机上的位置,这里我们把它设置成 /vagrant_demo ... create 可以设置成 true,这样目录不存在就会自动给我们去创建一个 .. type ,类型是 nfs ,bindfs 可以设置成 true ... 不然可能会遇到权限问题 ..
再打开命令行 .. 进入到项目下面的 trellis 这个目录 .. 执行一下 vagrant reload .. 重新启动虚拟机 ..
完成以后再登录到虚拟机 .. vagrant ssh
然后进入到刚才我们设置的同步目录 .. /vagrant_demo .. 这里有个 hello.txt .. 这个目录下面的东西就是项目下面的 demo 这个目录里的东西 ..
在这个 hello.txt 里面,添加一行文字 ... 然后在本地主机上再打开这个 hello.txt ... 你会发现里面有我们在虚拟机上为这个文件添加的这行文字 ..
然后在虚拟机上再删除掉 hello.txt ..
在项目下面的 demo 里面,hello.txt 这个文件也已经不在了 ...