Vagrant box 即使在重新加载后也看不到新的 box_url
Vagrant box does not see new box_url even after reloading
我将我的 Vagrantfile 的 confg.vm.box_url 更新为新的 URL(该框托管在 IP 已更改的服务器上)并且没有多少 vagrant 重新加载会使 Vagrant 看到新的 URL.当我 运行 vagrant reload --debug
时,我看到它试图从旧的 URL 获取元数据。
相关调试输出:
==> default: Checking if box 'tute_development' is up to date...
INFO downloader: Downloader starting download:
INFO downloader: -- Source: http://10.0.1.36/vagrant/tute_development/tute_development.json
这里是 vagrant 文件的相关部分:
config.vm.box_url = "http://192.168.1.104/vagrant/tute_development/tute_development.json"
如何让 vagrant box 看到新的 box_url?
不幸的是,这是 Vagrant 的预期行为。引用此 Github 问题 (https://github.com/mitchellh/vagrant/issues/4235):
The box URL in the config is only meant to be used if the box doesn't
exist (by its logical name) in the local box registry (vagrant box
list). To force a new box to be downloaded you'd have to update the
name, or point the URL to a metadata JSON with a higher version.
所引用的元数据 JSON 是 config.vm.box_url
属性 指向的 JSON 文件。在我的例子中,它指向一个已更改的内部网络 IP 地址,因此我在 ~/.vagrant.d/boxes/{boxname}/metadata_url
.
中编辑了 metadata_url 文件
我建议的另一种方法是删除第一次下载的默认基础 Vagrant(在 Windows 上,例如:C:\Users\[Username]\.vagrant.d\boxes\[YourBoxName]
)。重载的时候Vagrant会找,找不到,重新下载,用你改的URL
希望对您有所帮助。
我将我的 Vagrantfile 的 confg.vm.box_url 更新为新的 URL(该框托管在 IP 已更改的服务器上)并且没有多少 vagrant 重新加载会使 Vagrant 看到新的 URL.当我 运行 vagrant reload --debug
时,我看到它试图从旧的 URL 获取元数据。
相关调试输出:
==> default: Checking if box 'tute_development' is up to date...
INFO downloader: Downloader starting download:
INFO downloader: -- Source: http://10.0.1.36/vagrant/tute_development/tute_development.json
这里是 vagrant 文件的相关部分:
config.vm.box_url = "http://192.168.1.104/vagrant/tute_development/tute_development.json"
如何让 vagrant box 看到新的 box_url?
不幸的是,这是 Vagrant 的预期行为。引用此 Github 问题 (https://github.com/mitchellh/vagrant/issues/4235):
The box URL in the config is only meant to be used if the box doesn't exist (by its logical name) in the local box registry (vagrant box list). To force a new box to be downloaded you'd have to update the name, or point the URL to a metadata JSON with a higher version.
所引用的元数据 JSON 是 config.vm.box_url
属性 指向的 JSON 文件。在我的例子中,它指向一个已更改的内部网络 IP 地址,因此我在 ~/.vagrant.d/boxes/{boxname}/metadata_url
.
我建议的另一种方法是删除第一次下载的默认基础 Vagrant(在 Windows 上,例如:C:\Users\[Username]\.vagrant.d\boxes\[YourBoxName]
)。重载的时候Vagrant会找,找不到,重新下载,用你改的URL
希望对您有所帮助。