最近,我尝试使用VirtualBox作为VM提供程序设置Vagrant框。 在我的第一次尝试中,Vagrant正确创建了虚拟盒,但由于一些厨师错误而失败。
我解决了厨师指出的错误,并再次重新启用了vagrant up命令,但这次我遇到了以下错误:
Vagrant无法转发此VM上的指定端口,因为它们 会与正在收听的其他应用程序发生冲突 这些港口。
看来失败后,流浪汉没有清理与VBox相关的端口。我甚至尝试从它创建的Virtual Boxes目录中删除.vagrant目录和机器。仍然得到同样的错误。只有这样我才能通过更改vagrant文件中的端口转发来运行它。
请告诉我是否有任何方法可以在失败时强制进行阴道自动纠正/清洁设置;因为我不想在失败时改变vagrantfile,这可能由于很多原因而发生。
提前致谢。
答案 0 :(得分:2)
您可以使用auto_correct
选项
Vagrant.configure("2") do |config|
config.vm.network "forwarded_port", guest: 80, host: 8080,
auto_correct: true
end
来自https://www.vagrantup.com/docs/networking/forwarded_ports.html
在不知不觉中运行多个Vagrant机器时很常见 创建相互冲突的转发端口定义(两个 单独的Vagrant项目转发到端口8080,例如)。 Vagrant包含内置机制来检测并纠正它, 自动。
始终进行端口碰撞检测。 Vagrant不允许你这样做 定义主机上的端口所在的转发端口 接受交通或连接。
必须为每个人手动启用端口冲突自动更正 转发端口,因为它发生时通常会令人惊讶并且可以 引导Vagrant用户认为端口不正确 转发。启用自动更正非常简单:
最终:auto_correct参数设置为true告诉Vagrant为auto 纠正任何碰撞。在流浪汉或流浪汉重新加载期间,Vagrant 将输出有关任何碰撞检测和自动的信息 更正了,所以你可以注意并采取相应的行动。