boxes - vagrant virtualbox memory
Empaquetando una caja base con un Vagrantfile personalizado (2)
Tengo un Vagrantfile específico para una caja lucid32 que instala algunos paquetes bastante estándar (PHP / MySQL / Apache), realiza reenvíos de puertos específicos, etc., lo configuro, reviso un proyecto de git y cambio algunas configuraciones de servidor, quiero para empaquetar este cuadro para que lo usen otros desarrolladores del equipo, así que uso el comando:
vagrant package boxname --output test.box --vagrantfile Vagrantfile
Obtengo un archivo test.box, anota en el paquete que está agregando mi Vagrantfile específico, luego ejecuto:
vagrant box add boxname test.box
Aparece en la vagrant box list
vagrant init boxname
vagrant box list
muy bien, ahora cuando creo un directorio de prueba, y hago vagrant init boxname
seguido de vagrant init boxname
vagrant up
y luego aprovisiona ese buzón con los archivos de la caja y todo, pero no configura el reenvío de puertos adecuado. y de hecho no está usando mi Vagrantfile con el que lo empaqueté, pero generé uno nuevo predeterminado en ese directorio.
Noté que en ~ / .vagrant.d / boxes / boxname tiene el archivo predeterminado Vagrantfile, junto con el que empaqueté en includes / _Vagrantfile
¿Hay alguna manera en que pueda hacer que el Vagrantfile específico sea el que se genera cuando hago un vagrant init boxname
?
Este código funcionó para mí
vagrant package --output vagrant_example.box
Esto es en realidad todo funcionando como se esperaba. Vagrant carga varios archivos Vagrant (no solo el de vagrant init
) cuando se carga, y el Vagrantfile empaquetado con una caja es uno de esos. Para obtener más información, lea sobre el "Orden de carga de Vagrantfile" aquí: https://www.vagrantup.com/docs/vagrantfile/#load-order-and-merging
En pocas palabras: Vagrant carga varios archivos Vagrant en un orden específico y combina sus configuraciones. La caja Vagrantfile se carga como parte de este proceso antes de la raíz Vagrantfile (la de vagrant vagrant init
).
Actualmente no hay forma de hacer un Vagrantfile esqueleto que se genere con un vagrant init
vagrant.
La configuración que coloque en el Vagrantfile empaquetado, como los reenvíos de puertos, debe cargarse correctamente, ya que al fusionar las configuraciones, solo debe agregar todos los reenvíos de puertos.
¡Si esto no está sucediendo, deberías reportar un error! Pero por el bien de una respuesta de SO, así es como se supone que se comportan las cosas.