Apakah ada cara bagi Vagrant untuk mengimpor file kotak lokal dengan versi yang ditentukan?


9

Saya menggunakan kotak berversi, tetapi tidak menggunakan Vagrant Cloud (Saya memiliki host kotak kustom). Mengunduh kotak berversi berfungsi dengan baik.

Namun, ketika saya mengembangkan versi baru dari kotak saya secara lokal, saya tidak ingin harus melalui siklus unggah / unduh setiap kali saya ingin memutakhirkan versi kotak yang dimuat di Vagrant. Dengan kata lain, saya ingin menjalankan vagrant box add, sambil menentukan versi yang lebih baru dan file lokal.

vagrant box addtampaknya memiliki opsi --box-version, tetapi ini untuk membatasi versi kotak yang sedang diunduh, bukan untuk menentukan versi kotak yang ditambahkan. Upaya untuk menentukan versi kotak tetap menghasilkan:

Anda menentukan batasan versi kotak dengan jalur file kotak langsung. Batasan versi kotak hanya berfungsi dengan kotak dari Vagrant Cloud atau host kotak kustom. Harap hapus batasan versi dan coba lagi.

Tetapi saya tidak mencoba membatasi apa yang saya tambahkan; Saya mencoba menentukan . Bentuk kotak apa pun yang berfungsi sepertinya mengatur versi sebagai 0. Apakah ada cara untuk memperbaikinya dan memberi tahu Vagrant versi apa yang saya tambahkan?

Jawaban:


6

Berdasarkan jawaban ini , untuk menentukan versi untuk kotak lokal, Anda perlu membuat a metadata.json.

Konten minimum file terlihat seperti ini:

{
    "name": "USERNAME/BOXNAME",
    "versions": [{
        "version": "X.Y.Z",
        "providers": [{
            "url": "package.box"
        }]
    }]
}

Di mana package.boxjalur relatif berasalmetadata.json

Setelah itu, Anda cukup menjalankan vagrant box add metadata.jsonuntuk menambahkan kotak baru dengan versi.

Peringatan:

Vagrant menyimpan metadata.jsonurl dalam ~/.vagrant.d/boxes/FULLBOXNAME/metadata_urlfile. Jadi, berhati-hatilah dengan nama, Anda tidak dapat menggunakan nama yang sama dari sumber yang berbeda.


1

setelah mengimpor file kotak Anda

cd ~ / .vagrant.d / boxes / <username> -VAGANTSLASH- <boxname> /
mv 0 <versi yang ditentukan>

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.