~/.vagrant.d/boxes/BOX_NAME
以下にある。
$ tree ~/.vagrant.d/boxes/package.box /Users/kyanny/.vagrant.d/boxes/package.box └── 0 └── virtualbox ├── Vagrantfile ├── box-disk1.vmdk ├── box.ovf ├── include │ └── _Vagrantfile ├── metadata.json └── vagrant_private_key
package.box
はこの場合 box 名- この box を使って
vagrant up
すると Vagrantfile load order に従って~/.vagrant.d/boxes/package.box/0/virtualbox/Vagrantfile
が読み込まれる - その
Vagrantfile
の中でさらにinclude/_Vagrantfile
も読み込まれる - この
_Vagrantfile
がvagrant package --vagrantfile
オプションで指定した Vagrantfile そのもの
vagrant package - Command-Line Interface - Vagrant Documentation
じゃあなんでそもそも package.box
を作るときに --vagrantfile
オプションで指定した Vagrantfile
も含めることができるのかというと、 box ファイルは Gzipped TAR アーカイブでその中に入っているから。 box ファイルを展開すると ~/.vagrant.d/boxes` にあるのと同じファイル群が出てくる。
$ tar xzvf package.box x ./box-disk1.vmdk x ./box.ovf x ./include/ x ./include/_Vagrantfile x ./vagrant_private_key x ./Vagrantfile $ tree . . ├── Vagrantfile ├── box-disk1.vmdk ├── box.ovf ├── include │ └── _Vagrantfile ├── package.box └── vagrant_private_key