webentwicklung-frage-antwort-db.com.de

Wie kann ich einen in vagrant erstellten Ordner freigeben?

Ich habe einen Vagabund VM und ich habe einen Ordner (mein Code-Repo) vom Host (Ubuntu) für Vagabund mit config.vm.share_folder freigegeben. Ich möchte das Gegenteil mit einem Ordner tun, den ich in der virtuellen Maschine (einer virtuellen Umgebung) erstellt habe, die ich dem Host zurückgeben möchte. Wie kann ich das machen?

Ich habe versucht, der vagrant-Datei Folgendes hinzuzufügen: config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv", der auf die virtuelle Umgebung auf der vagrant-Maschine bzw. auf einen leeren Ordner auf dem Host verweist. Wenn ich aufsteige und in den Ordner auf dem Host schaue, möchte ich den Inhalt der virtuellen Umgebung in der Vagrant-Maschine sehen, aber der Ordner bleibt leer. Und wenn ich in die vagabundierende Maschine gehe und in den virtuellen Env-Ordner schaue, ist er leer geworden. Durch Deaktivieren dieser Einstellung wird der Inhalt des Ordners auf dem Vagrant-Computer wiederhergestellt.

16
Bastian

freigegebene Ordner VS synchronisierte Ordner

Freigegebene Ordner wurden in synchronisierte Ordner von v1 in v2 (docs) umbenannt. Unter der Motorhaube wird weiterhin vboxsfzwischen Host und guest verwendet (es gibt bekannte Leistungsprobleme, wenn eine große Anzahl von Dateien/Verzeichnissen vorhanden ist).

NOTE: Sie müssen wissen, dass das Host-Verzeichnis über vboxsfname__,NICHTin den Gast eingebunden wird.

In Ihrem Anwendungsfall können Sie

  1. verwenden Sie den synchronisierten Ordner, um Ordner zwischen Host und Gast zuzuordnen (vorausgesetzt, beide sind leer). Kopieren Sie dann innerhalb des Gasts (rsyncwird bevorzugt) oder verschieben Sie das Projekt in den zugeordneten Ordner.
  2. kopieren Sie den Inhalt von guest zu Host (mit scpoder rsyncname__) A, und verwenden Sie dann den synchronisierten Ordner, um den Ordner A auf dem Host dem Gast zuzuordnen.

Zum Beispiel

# 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. ordnet das Virtualenv-Verzeichnis im Projektverzeichnis (in dem sich der Vagrantfilebefindet) dem Gast /home/vagrant/devenv zu.

  2. absoluter Pfad

Weitere Informationen, die Ihnen helfen zu verstehen, wie synchronisierte Ordner funktionieren =>Vagrant freigegebene und synchronisierte Ordner

14
Terry Wang

Sowohl in freigegebenen Ordnern als auch in synchronisierten Ordnern (siehe http://docs.vagrantup.com/v2/synced-folders/ ) gehen die Änderungen in beide Richtungen. Der Host-Ordner und der Vagrant-Ordner sind immer synchron. Mit anderen Worten, es wird in beide Richtungen geteilt, so dass Sie nichts tun müssen.

0
rakhim

Sie können einen freigegebenen Ordner in Vagrant erstellen mit:

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

Teilen Sie den Mac im Ubuntu-Pfad

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

besitzer: "www-data", Gruppe: "www-data"

0
Krucamper