包装基座盒与自定义Vagrantfile(Packaging a base box with

2019-08-16 22:33发布

我有一个特定Vagrantfile对于安装一些漂亮的标准封装(PHP / MySQL的/阿帕奇)一个lucid32中,做了一些具体的端口转发等等,我把它,结账从git的一个项目,改变一些服务器的配置,我想包装的团队利用这台对其他开发人员,所以我用下面的命令:

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

Answer 1:

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

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

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

你把包装Vagrantfile的配置,如端口转发,应正确加载中,由于合并配置时,它应该只是追加的所有端口转发。

如果这没有发生,你应该报告错误! 但是,对于一个SO答案的缘故,这是事情应该如何表现。



Answer 2:

此代码为我工作

vagrant package --output vagrant_example.box


文章来源: Packaging a base box with a custom Vagrantfile