#vagrant #virtualbox #hyper-v
#vagrant #virtualbox #hyper-v
Вопрос:
Используя Vagrant, нужно использовать подобные конфигурации для использования с Hyper-V против Virtualbox:
(Virtualbox)
config.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["fmode=666", "dmode=777"]
(Hyper-V)
config.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["file_mode=0777", "dir_mode=0777"]
Разница только в fmode / dmode и file_mode / dir_mode.
Но это приводит к невозможности запуска соответственно другого. Vagrant up умирает с загадочными сообщениями / проблемами при попытке.
Есть ли обходной путь для этого?
Почему было принято это решение?
Это просто плохое решение или я упускаю что-то очевидное?
Использование Vagrant 2.2.3 в Windows.
Ответ №1:
если у вас разные настройки для каждого поставщика, вы можете переопределить настройку в разделе, соответствующем поставщику:
Vagrant.configure("2") do |config|
config.vm.box = "xxxx"
config.vm.provider "virtualbox" do |vb, override|
override.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["fmode=666", "dmode=777"]
end
config.vm.provider "hyperv" do |h, override|
override.vm.synced_folder ".", "/var/www/btoc/", mount_options: ["file_mode=666", "dir_mode=777"]
end
end
Комментарии:
1. Потрясающе! Это решает мою первоначальную боль — спасибо! Хотя решение назвать коммутатор по-разному на разных платформах для программного обеспечения с перекрестной платформой кажется все еще сомнительным, по крайней мере?
2. это может быть, но поскольку vagrant полагается на этих провайдеров, а поведение провайдера отличается, vagrant нуждается в некоторой поддержке со стороны vagrantfile, чтобы знать, как заставить его работать для вашего варианта использования на всех разных платформах