Vagrant共享和同步文件夹
我创build了一个包含以下内容的stream浪文件:
Vagrant::Config.run do |config| config.vm.define :foo do |cfg| cfg.vm.box = 'foo' cfg.vm.host_name = "foo.localdomain.local" cfg.vm.network :hostonly, "192.168.123.10" end Vagrant.configure("2") do |cfg| cfg.vm.customize [ "modifyvm", :id , "--name", "foo" , "--memory", "2048", "--cpus", "1"] cfg.vm.synced_folder "/tmp/", "/tmp/src/" end end
vagrant up
或vagrant reload
我得到:
[foo] Attempting graceful shutdown of VM... [foo] Setting the name of the VM... [foo] Clearing any previously set forwarded ports... [foo] Fixed port collision for 22 => 2222. Now on port 2200. [foo] Creating shared folders metadata... [foo] Clearing any previously set network interfaces... [foo] Preparing network interfaces based on configuration... [foo] Forwarding ports... [foo] -- 22 => 2200 (adapter 1) [foo] Booting VM... [foo] Waiting for VM to boot. This can take a few minutes. [foo] VM booted and ready for use! [foo] Setting hostname... [foo] Configuring and enabling network interfaces... [foo] Mounting shared folders... [foo] -- /vagrant
我的问题是:
- 为什么Vagrant安装
/vagrant
共享文件夹? 我读共享文件夹已弃用,以支持同步文件夹,我从来没有在我的stream浪文件中定义任何共享文件夹。 - 为什么同步的文件夹没有设置?
我在MacOX 10.8.4上使用Vagrant版本1.2.7。
共享文件夹VS同步文件夹
基本上,共享文件夹被重命名为v1到v2(docs)的同步文件夹,在主机和guest之间仍然使用vboxsf
(如果存在大量文件/目录,则存在性能问题)。
Vagrantfile目录作为/vagrant
加载在guest虚拟机中
Vagrant将当前工作目录( Vagrantfile
所在的位置)作为/vagrant
驻留在guest Vagrantfile
中,这是默认行为。
看文档
注意:默认情况下,Vagrant会将您的项目目录(包含Vagrantfile的目录)共享到/ vagrant。
您可以通过在您的Vagrantfile
添加cfg.vm.synced_folder ".", "/vagrant", disabled: true
来禁用此行为。
为什么同步文件夹不工作
根据主机上的输出/tmp
在正常运行时间内未安装。
使用VAGRANT_INFO=debug vagrant up
或VAGRANT_INFO=debug vagrant reload
启动虚拟机的更多的输出关于为什么同步文件夹没有挂载。 可能是一个权限问题(主机上/tmp
模式位应该是drwxrwxrwt
)。
我做了一个testing快速testing使用以下,它的工作(我用opscode bento raringstream浪汉基地盒)
config.vm.synced_folder "/tmp", "/tmp/src"
产量
$ vagrant reload [default] Attempting graceful shutdown of VM... [default] Setting the name of the VM... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Available bridged network interfaces: 1) eth0 2) vmnet8 3) lxcbr0 4) vmnet1 What interface should the network bridge to? 1 [default] Preparing network interfaces based on configuration... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Running 'pre-boot' VM customizations... [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] Configuring and enabling network interfaces... [default] Mounting shared folders... [default] -- /vagrant [default] -- /tmp/src
在VM中,你可以/tmp/src on /tmp/src type vboxsf (uid=900,gid=900,rw)
看到mount info /tmp/src on /tmp/src type vboxsf (uid=900,gid=900,rw)
。