2013-02-13 46 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