Lil*_*tFX 20 virtualbox vagrant
为什么,因为很难通过来宾中的遗留编辑器来处理和编辑代码.流浪者的整个目的是为开发人员更容易,对吧:)?
因此,我请有人在这种情况下指导我:
在VM repo上/home/vagrant/src.我希望它../src在主机中可见/可编辑.
我阅读了文档并在Vagranfile中推出了这个文档:
config.vm.synced_folder '../src', '/home/vagrant/src'
这个"作品",除了它会覆盖所有的内容从/home/vagrant/src与那些从../src里面是空的.
任何解决方法?我考虑过通过git克隆repo的可能性(通过github公开获得)并将文件夹同步到VM,但这感觉不对,也失去了生产配置.
好像你正在寻找双向同步.如果我的理解是正确的,这个答案会帮助你.请注意,我还没有测试过这些.似乎关键是使用virtualbox同步类型.
type(string) - 同步文件夹的类型.如果未指定,则Vagrant将自动为您的环境选择最佳的同步文件夹选项.否则,您可以指定特定类型,例如"nfs".
config.vm.synced_folder '../src', '/home/vagrant/src', type: "virtualbox"
Run Code Online (Sandbox Code Playgroud)
然后再根据这个文档,
如果您使用的是Vagrant VirtualBox提供程序,则VirtualBox共享文件夹是默认的同步文件夹类型.这些同步文件夹使用VirtualBox共享文件夹系统来同步从guest虚拟机到主机的文件更改,反之亦然.
因此,我不确定为什么您的默认类型不是virtualbox.无论如何,这是值得一试的我猜.进一步进入文档似乎是在文档中解释的虚拟框类型中的错误.如果您要使用虚拟盒同步类型,请按照此处的步骤操作.
我Vagrantfile看起来像这样:
Vagrant.configure(2) do |config|
config.vm.box = "bento/ubuntu-16.04"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 22, host: 10170, id: "ssh"
config.vm.provision :shell, path: "VagrantProvision.sh"
config.vm.synced_folder "./", "/var/beeGame"
end
Run Code Online (Sandbox Code Playgroud)
正如你在这里看到的,我和你的声明一样!在这里我的回购(你可以尝试它的例子),它适合我!我使用PhpStorm打开此repo并自动编辑文件和所有更新,并从我的主机(我的笔记本电脑)同步到客户机(虚拟).
在你的情况,你正在做的一切权利,并流浪汉不得不从覆盖的所有内容/home/vagrant/src与那些从../src.这是正确的行为!您需要将代码src放在主机(您的笔记本电脑)上的dir中,而不是在您的客户机上(虚拟)!
我已经确定问题不在于config.vm.synced_folder '../src', '/home/vagrant/src'覆盖 /home/vagrant/src。问题是 home/vagrant/src 成为文件系统中一个新的不同类型的目录,它是空的。因此,只需在设置共享目录后重新填充它。所以...
sudo mv home/vagrant/src home/vagrant/src-backconfig.vm.synced_folder '../src', '/home/vagrant/src'sudo mv home/vagrant/src-back/* home/vagrant/src-back/事情应该会顺利进行。
听起来您想与主机共享来宾计算机上的文件夹,这与普通共享文件夹的作用相反。
您是否考虑过在来宾上配置 NFS,然后使用vagrant-triggers将共享从来宾挂载到主机上。
首先安装 vagrant-triggers:
vagrant plugin install vagrant-triggers
然后有一个Vagrantfile像这样的:
# where you want to mount the guest's shared folder on the host
host_mount_dir = "/home/david/vagrant-home"
Vagrant.configure(2) do |config|
config.vm.box = "debian/jessie64"
# forward the NFS port
config.vm.network "forwarded_port", guest: 2049, host: 8049
# configure NFS on guest
config.vm.provision "shell", inline: <<SCRIPT
apt-get install -y nfs-kernel-server nfs-common
host_ip="$(netstat -rn | grep "^0.0.0.0 " | cut -d " " -f10)"
echo "/home/vagrant $host_ip(rw,sync,no_subtree_check)" > /etc/exports
exportfs -a
SCRIPT
# after the machine is up, mount the NFS share
config.trigger.after :up do
# mkake the dir if it doesnt exist
run "mkdir -p " + host_mount_dir
# we need the users pass to mount (make sure you are a sudoer!)'
puts "Please enter your password so that we can run mount"
run "sudo mount -t nfs -o port=8049 localhost:/home/vagrant #{host_mount_dir}"
end
# before halting, unmount the share
config.trigger.before :halt do
# we need the users pass again
puts "Please enter your password so that we can run mount"
run "sudo umount #{host_mount_dir}"
end
end
Run Code Online (Sandbox Code Playgroud)
这是一个不寻常的设置,但我现在使用 Ubuntu 主机和 Debian 来宾测试了它,它似乎可以工作 - YMMV。
| 归档时间: |
|
| 查看次数: |
6993 次 |
| 最近记录: |