vagrant包创建原始盒子的副本而不做任何更改

时间:2013-08-19 22:10:56

标签: windows vagrant

这可能是一个菜鸟问题,但在使用vagrant up对图像进行一些更改然后安装某些内容后,我会调用vagrant package --box [name] --output [new.box]

我从new.box创建一个新的vagrant init后,它没有在我打包的盒子上安装新东西。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

原因可能是您使用了相同的方框名称。

如你所述,你做过这样的事情:

  1. 创建了Vagrantfile

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.box = 'base'
      config.vm.box_url = 'http://the-url-of-box-you-used-as-base.com/precise.box'
    end
    
  2. vagrant up

  3. vagrant ssh =>那里你做了一些改变
  4. vagrant package --box [name] --output [new.box]
  5. 编辑原始Vagrant文件(或创建一个新文件)以加载新框:

    Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
      config.vm.box = 'base'
      config.vm.box_url = 'my-new.box'
    end
    
  6. 在这里我假设你保持config.vm.box相同,这意味着Vagrant没有使用你的盒子,而是原来的前一个盒子,因为已经在~/.vagrant.d/boxes中已经下载了带有该名称的盒子

    可能有两种解决方案:

    1. 更改Vagrantfile中的名称(如果您在生成自定义框时实际使用了不同的名称)
    2. 删除具有该名称的缓存框=删除~/.vagrant.d/boxes/[name]