2013-02-13 72 views
16

我有一个特定Vagrantfile对于安装一些漂亮的标准封装(PHP/MySQL的/阿帕奇)一个lucid32中,做了一些具体的端口转发等等,我把它,结账从Git项目和改变一些服务器配置,我要打包此框上的团队使用其他开发人员,所以我用命令:包装基座盒与自定义Vagrantfile

vagrant package boxname --output test.box --vagrantfile Vagrantfile 

我得到一个test.box文件,它指出在包装它添加我的具体Vagrantfile,然后我运行:

vagrant box add boxname test.box 

它出现在vagrant box list就好了,现在当我创建一些测试目录,并做vagrant init boxname其次vagrant up ,然后将其规定,凡与来自结账和一切文件框中,但确实建立适当的端口转发, 并在事实上不使用我的Vagrantfile我打包它,但在该目录中生成一个新的默认。

我注意到〜/ .vagrant.d /盒/ boxname它具有默认Vagrantfile,与一个在我沿着封装包括/ _Vagrantfile

有什么办法,我可以得到具体Vagrantfile是我在做什么时产生vagrant init boxname

回答

21

如预期这实际上是所有工作。流浪负载的多个Vagrantfiles(不只是一个从vagrant init)加载了的时候,用盒子包装的Vagrantfile是其中之一。欲了解更多信息,请阅读有关“Vagrantfile装载顺序”在这里:https://www.vagrantup.com/docs/vagrantfile/#load-order-and-merging

一言以蔽之:流浪加载多个Vagrantfiles按照特定的顺序,并合并它们的配置。盒子Vagrantfile加载为之前根Vagrantfile(从vagrant init所述一个)该过程的一部分。

目前还没有办法让一个与vagrant init产生的骨架Vagrantfile。

您放入打包的Vagrantfile中的配置(如端口转发)应该正确加载,因为在合并配置时,它应该只是附加所有端口转发。

如果这没有发生,你应该报告错误!但为了这样的回答,这就是事情应该如何表现的。

+0

只是一个快速更新:[Vagrantfile加载顺序(https://www.vagrantup.com/docs/vagrantfile/#load-order) – eklingen 2016-06-09 19:11:23

0

此代码为我工作

vagrant package --output vagrant_example.box