如何共享在vagrant中创建的文件夹?

时间:2013-10-07 18:22:44

标签: ubuntu vagrant

我有一个流浪汉VM,我使用config.vm.share_folder从主机(ubuntu)共享一个文件夹(我的代码仓库)到流浪者。我想对我在vagrant机器(虚拟环境)中创建的文件夹执行相反的操作。我想将其共享回主机。我怎么能这样做?

我尝试将以下内容添加到vagrant文​​件中:config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv"分别指向vagrant机器上的虚拟环境和主机上的空文件夹。当我流浪并查看主机上的文件夹内部时,我希望看到流浪汉机器内虚拟环境的内容,但该文件夹保持空白。当我进入流浪汉机器并查看虚拟环境文件夹时,它变空了。取消激活此设置将恢复vagrant机器上文件夹的内容。

3 个答案:

答案 0 :(得分:14)

共享文件夹VS同步文件夹

共享文件夹已重命名为从v1到v2(docs)的同步文件夹,在主机和来宾之间仍然使用vboxsf的引擎盖下(如果有大量文件/目录,则存在已知的性能问题) )。

  

注意:您需要了解它通过vboxsf NOT 反过来将主机目录安装到访客中。

在您的用例中,您可以

  1. 使用synced文件夹在主机和来宾之间映射文件夹(假设它们都是空的),然后在来宾中复制(首选rsync)或将项目移动到映射文件夹中。
  2. 将内容从guest虚拟机复制到主机(使用scprsync)文件夹 A,然后使用synced文件夹将主机上的文件夹A映射到guest虚拟机。
  3. 例如

    # relative path to where Vagrantfile resides
    config.vm.synced_folder "virtualenv", "/home/vagrant/devenv"
    
    # absolute path
    config.vm.synced_folder "/path/to/virtualenv", "/home/vagrant/devenv"
    
    1. 将项目目录中的virtualenv目录(Vagrantfile所在的位置)映射到访客/home/vagrant/devenv

    2. 绝对路径

    3. 有助于您了解同步文件夹的工作原理的更多信息=> Vagrant shared and synced folders

答案 1 :(得分:0)

在共享文件夹和同步文件夹(请参阅http://docs.vagrantup.com/v2/synced-folders/)中,编辑都是双向的。主机文件夹和Vagrant文​​件夹始终保持同步。换句话说,它是双向共享的,所以你不需要做任何事情。

答案 2 :(得分:0)

您可以使用以下内容在Vagrant中创建共享文件夹:

config.vm.synced_folder "data", "/var/www", :mount_options => ["dmode=777","fmode=666"]

将Mac分享到Ubuntu路径

config.vm.synced_folder "/Users/Myname/www-vagrant", "/var/www/vagrant",

所有者:“www-data”,组:“www-data”