Как открыть папку, созданную внутри бродяг?
У меня есть 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"
Дополнительная информация, которая поможет вам понять, как работают синхронизированные папки =>
Общие и синхронизированные папки 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"