我有一个名为package.box的自定义框。我试图流浪,流浪盒添加时出现此错误。我创建了一个不同配置的metadata.json文件,但没有运气。我不明白这个消息。我使用virtualbox进行配置。
我不了解他们网站上有关metadata.json文件的文档。
找不到“package.box”框的“metadata.json”文件 框需要此文件才能让Vagrant确定 提供者它是为了。如果您制作了这个盒子,请添加一个 “metadata.json”文件。如果其他人制作了这个盒子,请你 通知盒子创建者盒子已损坏。文件为 箱式文件格式可在以下网址找到:
https://www.vagrantup.com/docs/boxes/format.html
package.box位于空目录中。在它旁边我放了这个metadata.json文件:
{
"description": "long box description",
"short_description": "short box description",
"name": "company/developer-environment",
"versions": [{
"version": "1",
"status": "active",
"description_html": "<p>Dev Environment</p>",
"description_markdown": "Dev Environment",
"providers": [{
"name": "virtualbox",
"url": "./package.box"
}]
}]
}
我使用的是ubuntu 16.04系统,vagrant 1.8.5,virtualbox 5.0.26。
答案 0 :(得分:2)
package.box
文件是您的VM的zip文件,metadata.json
文件不能是package.box文件的下一个文件,而是在其中。
因此,在打包方框之前,请将元数据文件存储在VM文件旁边,例如
.
|-- box-disk1.vmdk
|-- box.ovf
|-- metadata.json
所以当你运行vagrant package
时,它会将元数据文件包含在盒子文件中。
答案 1 :(得分:0)
免责声明:这不是一个答案,而是一个后续问题。
这看起来和我遇到的问题一模一样。因为我无法从 Artifactory 获取 metadata.json。
如何将 metadata.json 打包到 .box 文件中?
我分两步创建了我的盒子。
首先:
生成 *.vmdk
和 *.ovf
文件的基本图像
完成
"post-processors": [
{
"type": "artifice",
"files": [
"builds/{{.BuildName}}-{{.Provider}}-centos7.vmdk",
"builds/{{.BuildName}}-{{.Provider}}-centos7.ovf"
]
},
{
"type": "vagrant",
"keep_input_artifact": true,
"provider_override": "virtualbox"
}
]
第二:
我将我的网络应用程序安装到映像中,并生成 *.box
文件。
完成:
"post-processors": [
[
{
"output": "builds/devbox.box",
"type": "vagrant"
}
]
]