Как открыть папку, созданную внутри бродяг?

У меня есть vagrant VM, и я поделился папкой (мой код репо) с хостом (ubuntu) с бродягой, используя config.vm.share_folder. Я хотел бы сделать обратное с папкой, которую я создал внутри машины бродяг (виртуальная среда), я хотел бы поделиться ею с хостом. Как я могу это сделать?

Я попытался добавить следующее в бродячий файл: config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv", который указывает соответственно на виртуальную среду на бродячей машине и в пустую папку на хосте. Когда я бродячим и заглядываю в папку на хосте, я бы хотел увидеть содержимое виртуального env внутри машины бродяг, но папка остается пустой. И когда я схожу в бродячую машину и заглядываю в виртуальную папку env, она становится пустой. Деактивация этого параметра восстанавливает содержимое папки на бродяжней машине.

Ответы

Ответ 1

общие папки VS синхронизированные папки

Общие папки были переименованы в синхронизированные папки с v1 на v2 (docs), под капотом все еще используется vboxsf между хостом и гостем (известные проблемы производительности при наличии большого количества файлов/каталогов).

ПРИМЕЧАНИЕ. Вам нужно понять, что он монтирует главную директорию в гостевой системе через vboxsf, NOT наоборот.

В вашем случае использования вы можете

  • используйте синхронизированную папку для сопоставления папок между хостом и гостем (предположим, что оба они пустые), тогда в гостевой копии рекомендуется скопировать (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"
  • отображает каталог virtualenv в каталоге проекта (где находится Vagrantfile) для гостя /home/vagrant/devenv.

  • абсолютный путь

Дополнительная информация, которая поможет вам понять, как работают синхронизированные папки => Общие и синхронизированные папки Vagrant

Ответ 2

Как в общих папках, так и в синхронизированных папках (см. http://docs.vagrantup.com/v2/synced-folders/) редактирование происходит в обоих направлениях. Папка хоста и папка Vagrant всегда синхронизируются. Другими словами, он разделяется в обоих направлениях, поэтому вам не нужно ничего делать.

Ответ 3

Вы можете создать общую папку в 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"