Comment partager un dossier créé dans vagrant?

j'ai une VM vagrant et j'ai partagé un dossier (mon code repo) de l'hôte (ubuntu) vers vagrant en utilisant config.vm.share_folder. J'aimerais faire le contraire avec un dossier que j'ai créé à l'intérieur de la machine vagrant (un environnement virtuel) que j'aimerais partager avec l'hôte. Comment puis-je le faire?

j'ai essayé d'ajouter les éléments suivants à l'errance fichier: config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv" qui pointent respectivement vers l'environnement virtuel sur la machine errante et Vers un dossier vide sur l'hôte. Quand J' vagrant up et regarder à l'intérieur le dossier sur l'ordinateur hôte, je voudrais voir le contenu du virtuel env à l'intérieur de l'errance de la machine, mais le dossier reste vide. Et quand je regarde dans la machine Vagabonde et que je regarde dans le dossier env virtuel, il est devenu vide. La désactivation de ce paramètre rétablit le contenu du dossier sur la machine vagabonde.

16
demandé sur Bastian 2013-10-07 22:22:43

3 réponses

dossiers partagés VS dossiers synchronisés

les dossiers partagés ont été renommés en dossiers synchronisés de v1 à v2 (docs), sous le capot il utilise encore vboxsf entre l'hôte et l'invité (il y a des problèmes de performance connus s'il y a un grand nombre de fichiers/répertoires).

NOTE: Vous devez comprendre qu'il monte répertoire de l'hôte dans l'invité via vboxsf, dans l'autre sens.

Dans votre cas d'utilisation, vous pouvez

  1. utilisez le dossier synchronisé pour mapper les dossiers entre l'hôte et l'invité (supposons qu'ils soient tous les deux vides), puis dans l'invité, copiez (rsync préférence) ou de déplacer le projet dans le dossier mappé.
  2. copier le contenu de l'invité à l'hôte (en utilisant scp ou rsync) dossier A, et ensuite utiliser le dossier synchronisé pour mapper le dossier a sur l'hôte dans guest.

Par exemple

# 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. cartographie du virtualenv répertoire dans le répertoire du projet (où Vagrantfile réside) à l'invité /home/vagrant/devenv.

  2. chemin absolu

Plus d'informations qui peuvent vous aider à comprendre comment les dossiers synchronisé =>Vagrant dossiers partagés et synchronisés

14
répondu Terry Wang 2017-05-23 12:02:31

Dans les dossiers partagés et des dossiers synchronisées (voir http://docs.vagrantup.com/v2/synced-folders/ ) modifications vont dans les deux sens. Le dossier et Les dossiers sont toujours synchronisés. En d'autres termes, il est partagé dans les deux sens, de sorte que vous n'aurez pas besoin de faire quoi que ce soit.

0
répondu rakhim 2013-10-07 18:58:45

Vous pouvez créer un dossier partagé dans Vagrant avec:

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

partagez Mac dans Ubuntu path

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

propriétaire: "www-data", groupe: "www-data"

0
répondu Krucamper 2015-06-17 17:54:42