Comment copier une boîte vagrant pour la réutiliser

J’ai téléchargé Homestead box thrid time ce mois-ci en utilisant la boîte vagrante add laravel / homestead . Je n’ai actuellement pas access à Internet rapide, donc c’est assez ennuyeux de le télécharger à chaque fois. Existe-t-il un moyen d’utiliser à nouveau le package téléchargé et d’inclure le package local dans vagrant, c’est important si les projets ou les emplacements synchronisés sont conservés ou non.

Je suis sur la machine Ubuntu si cela compte.

Mise à jour: J’ai besoin de la boîte Homestead téléchargée pour que, si ma machine tombe en panne ou que je doive l’installer ailleurs sans connexion Internet lente, je peux le faire localement.

Une meilleure façon de le faire est:

  1. Il suffit d’aller dans le répertoire où vous avez effectué l’ Vagrant init
  2. Faire un vagrant package --output mynew.box

Vous obtiendrez la boîte emballée dans le fichier mynew.box que vous pouvez même copier et partager avec vos autres développeurs. Ceci est très utile à mon avis, où vous avez une vitesse Internet plus lente.

Oh c’est assez facile.

Pour ranger votre boîte actuellement installée dans un fichier .box (tout en le gardant installé sur votre système), utilisez simplement la vagrant box list pour trouver le nom de la boîte, le fournisseur et la version.

Ensuite, utilisez le vagrant box repackage et il le mettra dans un fichier appelé package.box.

J’espère que cela a aidé!

Juste pour compléter la réponse de @thecodethinker .

Lorsque j’ai appliqué la commande suggérée:

vagrant box list

et

vagrant box repackage

Voici ce qui s’est passé:

 Bringing machine 'default' up with 'virtualbox' provider... ==> default: Box 'laravel/homestead' could not be found. Attempting to find and install... default: Box Provider: virtualbox default: Box Version: >= 0.4.0 ==> default: Loading metadata for box 'laravel/homestead' default: URL: https://atlas.hashicorp.com/laravel/homestead ==> default: Adding box 'laravel/homestead' (v0.5.0) for provider: virtualbox default: Downloading: https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.5.0/providers/virtualbox.box 

Comme vous pouvez le constater, il n’a pas reconnu le package.box et essaie de le télécharger depuis Internet. Si vous regardez de plus près, vous pouvez voir que vous cherchez une box version >= 0.4.0 .

Ceci est le résultat de la vagrant box list :

laravel/homestead (virtualbox, 0)

Parce que la boîte a été ajoutée manuellement. La boîte de métadonnées n’était pas disponible et, par défaut, elle définira la version sur 0.

Pour résoudre le problème, créez un metadata.json :

 { "name": "laravel/homestead", "versions": [{ "version": "0.4.0", "providers": [{ "name": "virtualbox", "url": "file://package.box" }] }] } 

Parce que maintenant nous avons une métadonnée appropriée, vous pouvez faire:

vagrant box add metadata.json