使用自定义Vagrantfile打包基本框

Dan*_*nna 18 virtualbox vagrant

我有一个特定的Vagrantfile用于lucid32盒子,安装一些非常标准的包(PHP/MySQL/Apache),做一些特定的端口转发等等,我设置它,从git签出一个项目并更改一些服务器配置,我想要将此框打包给团队中的其他开发人员使用,所以我使用命令:

vagrant package boxname --output test.box --vagrantfile Vagrantfile
Run Code Online (Sandbox Code Playgroud)

我得到一个test.box文件,它在包装中注明它正在添加我的特定Vagrantfile,然后我运行:

vagrant box add boxname test.box
Run Code Online (Sandbox Code Playgroud)

它出现在vagrant box list当我创建一些测试目录,也就好了,现在vagrant init boxname接着vagrant up ,然后将其规定,凡与来自结账和一切文件框中,但确实没有设置正确的端口转发,实际上是在不使用我的Vagrantfile我打包了它,但在该目录中生成了一个新的默认值.

我在〜/ .vagrant.d/boxes/boxname中注意到它有默认的Vagrantfile,以及我打包的那个包含/ _Vagrantfile

有什么方法可以让我的特定Vagrantfile成为我生成的那个vagrant init boxname

Mit*_*ell 23

这实际上都是按预期工作的.Vagrant vagrant init在加载时加载了多个Vagrantfiles(不仅仅是那个),而且用盒子打包的Vagrantfile就是其中之一.有关更多信息,请在此处阅读"Vagrantfile加载顺序":https://www.vagrantup.com/docs/vagrantfile/#load-order-and-merging

简而言之:Vagrant按特定顺序加载多个Vagrantfiles,并合并其配置.Vagrantfile框作为此过程的一部分加载到根Vagrantfile(来自之前vagrant init)之前.

目前无法制作生成的骨架Vagrantfile vagrant init.

您在打包的Vagrant文​​件中放置的配置(例如端口转发)应该正确加载,因为在合并配置时,它应该只是附加所有端口转发.

如果没有发生这种情况,您应该报告错误!但是为了得到答案,这就是事情的表现方式.