Vagrant가 지정된 버전의 로컬 박스 파일을 가져 오는 방법이 있습니까?


9

버전 상자를 사용하지만 Vagrant Cloud를 사용하지 않습니다 (사용자 정의 상자 호스트가 있습니다). 버전 상자를 다운로드하면 잘 작동합니다.

그러나 로컬에서 새 버전의 박스를 개발할 때 Vagrant에로드 된 박스의 버전을 업그레이드 할 때마다 업로드 / 다운로드주기를 거치고 싶지 않습니다. 즉, vagrant box add최신 버전과 로컬 파일을 지정하면서을 실행하고 싶습니다 .

vagrant box add옵션이있는 것 --box-version같지만 추가 할 상자의 버전을 지정하는 것이 아니라 다운로드중인 상자의 버전을 제한하기위한 것입니다. 상자 버전을 지정하려고하면 다음과 같은 결과가 발생합니다.

직접 상자 파일 경로와 함께 상자 버전 제약 조건을 지정했습니다. 박스 버전 제한은 Vagrant Cloud 또는 사용자 정의 박스 호스트의 박스에서만 작동합니다. 버전 제약 조건을 제거하고 다시 시도하십시오.

그러나 나는 내가 추가 하는 것을 제한 하려고하지 않습니다 . 을 지정 하려고합니다 . 작동하는 모든 형식의 상자 추가는 버전을 0으로 설정하는 것 같습니다.이 문제를 해결하고 Vagrant에 추가중인 버전을 알려주는 방법이 있습니까?

답변:


6

답변 에 따라 로컬 상자의 버전을 지정하려면을 만들어야합니다 metadata.json.

파일의 최소 내용은 다음과 같습니다.

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

어디에서 package.box상대 경로metadata.json

그런 vagrant box add metadata.json다음 버전을 사용하여 새 상자를 추가하기 위해 간단히 실행할 수 있습니다.

경고:

Vagrant는 metadata.jsonURL을 ~/.vagrant.d/boxes/FULLBOXNAME/metadata_url파일 에 저장 합니다. 따라서 이름에주의를 기울이면 다른 출처의 동일한 이름을 사용할 수 없습니다.


1

박스 파일을 가져온 후

cd ~ / .vagrant.d / boxes / <username> -VAGANTSLASH- <boxname> /
mv 0 <지정된 버전>

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.