我暂时没有在Linux上使用过Vagrant。当我开始使用新版本(Vagrant 1.8)时,我遇到了一个问题:在来宾VM中创建的文件没有出现在主机的同步文件夹中。
如何强制Vagrant将文件从来宾操作系统同步到主机操作系统?
答案 0 :(得分:13)
根据文档,当未指定Vagrantfile中的type
选项config.vm.synced_folder
参数时,Vagrant会尝试选择最佳可用选项:
type
(字符串) - 同步文件夹的类型。如果未指定,则Vagrant将自动为您的环境选择最佳的同步文件夹选项。否则,您可以指定特定类型,例如“nfs”。
从版本1.5 Vagrant introduced新的“rsync同步文件夹”功能开始。
所以在我的情况下,自动选择类型rsync
,这是单向同步:从主机到访客。
要使文件夹以双向同步,我在Vagrantfile中添加了显式定义:
config.vm.synced_folder ".", "/vagrant", type: "virtualbox"
当然,这只适用于VirtualBox。
双向同步对于工作流很有用,其中客户机上的应用程序创建文件,例如,现代Web框架中的数据库迁移文件。
注意:当项目包含大量文件时,virtualbox同步文件夹会出现已知的性能问题。
答案 1 :(得分:0)
谢谢你,这正是我过去几天所寻找的!!!!!我和Laravel 5,宅基地和流浪汉有这个问题。许多答案在那里,但没有一个对我有用。我的yaml文件的文件夹部分也有rsync,我也必须删除。在这两个更改之后,文件共享最终在主机和客户端之间同步。
require File.expand_path(File.dirname(__FILE__) + '/scripts/homestead.rb')
config.vm.synced_folder"。"," / vagrant",输入:" virtualbox"
Vagrant.configure(VAGRANTFILE_API_VERSION)do | config |
这是我对Vagranfile进行更改的地方。