这是我的流浪盒配置设置:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
box_version = "0.0.1"
config.vm.box = "Ubuntu precise 64 VirtualBox"
config.vm.box_url = "http://files.vagrantup.com/precise64.box"
config.vm.network "private_network", ip: "192.168.20.4"
config.vm.synced_folder "wordpress", "/var/www/", type: "nfs", mount_options: ['rw', 'vers=3', 'tcp', 'fsc']
config.vm.network "forwarded_port", guest: 80, host: 9090
config.ssh.forward_agent = true
config.vm.provider(:virtualbox) do |vb|
vb.customize [
"modifyvm", :id,
"--memory", "2048",
"--cpus", "4"
]
end
end
有两个框具有完全相同的配置,唯一的区别是host:
选项。这里的一个说9090,另一个说8080。
问题是,我开始一个,另一个开始了。我也停止了其他一次停止。我没有收到错误说明端口正在使用,实际上它们都启动并且在启动和/或停止时都关闭。
我最初设置了8080一个来做WordPress开发。我需要为不同的WP项目使用相同的框,所以我只是复制了文件夹,并在复制的文件夹中删除了.vagrant文件夹并重新运行vagrant,认为它们将是单独的框。
不,同样的问题,当一个人开始另一个开始,当一个人关闭另一个也开始。它们是同一个盒子。
我需要更改哪些内容不同,但使用相同的操作系统?
答案 0 :(得分:0)
如果没有为每个不同的Vagrantfile定义单独的名称,VirtualBox可能会将它们视为同一个虚拟机。
要解决此问题,您可以通过单独设置vb.name
参数来更改每个Vagrant文件,如下所示:
config.vm.provider(:virtualbox) do |vb|
vb.customize [
"modifyvm", :id,
"--memory", "2048",
"--cpus", "4"
]
vb.name = "box1"
end
为他们命名" box1"," box2",或者用你想要的任何约定。然后,只要Vagrant文件位于不同的目录中,您就会拥有独立的VM。