7

Я использую версионные ящики, но не использую Vagrant Cloud (у меня есть собственный хост для ящиков). Загрузка версированных коробок работает хорошо.

Однако, когда я разрабатываю новые версии своего ящика локально, мне не нужно проходить цикл загрузки / выгрузки каждый раз, когда я хочу обновить версию ящика, загруженную в Vagrant. Другими словами, я хотел бы запустить vagrant box add , указав более новую версию и локальный файл.

vagrant box add кажется, имеет опцию --box-version , но она предназначена для ограничения версии загружаемого ящика, а не для указания версии добавляемого ящика. Попытка указать box-версию в любом случае приводит к:

Вы указали ограничение версии бокса с прямым путем к файлу бокса. Ограничения версии бокса работают только с ящиками из Vagrant Cloud или пользовательского хоста ящиков. Пожалуйста, удалите ограничение версии и попробуйте снова.

Но я не пытаюсь ограничить то, что добавляю; Я пытаюсь уточнить. Кажется, что любая форма добавления коробки устанавливает версию как 0. Есть ли способ исправить это и сказать Vagrant, какую версию я добавляю?

2 ответа2

5

Исходя из этого ответа, чтобы указать версию для локальных ящиков, вам нужно создать metadata.json .

Минимальное содержимое файла выглядит так:

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

Где package.box - это относительный путь из metadata.json

После этого вы можете просто запустить vagrant box add metadata.json чтобы добавить новый ящик с версией.

Предупреждение:

Бродячие хранит metadata.json URL в файле ~/.vagrant.d/boxes/FULLBOXNAME/metadata_url Поэтому будьте осторожны с именами, вы не можете использовать одно и то же имя из разных источников.

1

после импорта вашего файла коробки

cd ~/.vagrant.d/boxes/<имя пользователя> -VAGANTSLASH- <boxname>/
mv 0 <указанная версия>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .