私はvagrant VMを持っており、config.vm.share_folder
を使用してホスト(ubuntu)からvagrantにフォルダー(私のコードリポジトリ)を共有しています。フォルダーを使用して反対の操作を行いたいです。 vagrant machine(仮想環境)内で作成しましたが、ホストに共有したいのですが、どうすればよいですか?
以下をvagrantファイルに追加しようとしました:config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv"
wichは、それぞれvagrantマシンの仮想環境とHostの空のフォルダーを指します。私が迷惑をかけてホスト上のフォルダの内部を見ると、迷惑なマシン内の仮想環境のコンテンツを見たいのですが、フォルダは空のままです。そして、私がvagrantマシンにsshして仮想envフォルダ内を見ると、それは空になっています。この設定を無効にすると、迷惑マシンのフォルダの内容が復元されます。
共有フォルダーは、v1からv2(ドキュメント)の同期フォルダーに名前が変更されました。ボンネットの下では、ホストとゲストの間でvboxsf
がまだ使用されています(多数のファイル/ディレクトリがある場合、既知のパフォーマンスの問題があります)。
[〜#〜]注[〜#〜]:ホストディレクトリが
vboxsf
を介してゲストにマウントされることを理解する必要があります [〜#〜]ではありません[〜#〜]逆の方法です。
あなたのユースケースでは、次のことができます
rsync
を推奨)するか、プロジェクトをマップされたフォルダーに移動します。scp
またはrsync
を使用して)、フォルダーAを同期し、同期フォルダーを使用して、ホスト上のフォルダーAをゲストにマップします。例えば
# 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"
プロジェクトディレクトリ(Vagrantfile
が存在する場所)のvirtualenvディレクトリをゲスト/home/vagrant/devenv
にマップします。
絶対パス
同期フォルダーの動作を理解するのに役立つ詳細情報=>
Vagrant共有フォルダーと同期フォルダー
共有フォルダーと同期フォルダー( http://docs.vagrantup.com/v2/synced-folders/ を参照)の両方で、編集は双方向に行われます。 HostフォルダーとVagrantフォルダーは常に同期しています。つまり、両方の方法で共有されるため、何もする必要はありません。
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」