我有一个名为package.box的自定义盒子。我在尝试流浪时遇到了这个错误,流浪盒子添加。我用不同的配置创建了一个metadata.json文件,但没有成功。我不明白这个信息。我使用virtualbox进行配置。
我不理解他们网站上关于metadata.json文件的文档。
找不到box"package.box"的"metadata.json"文件
方框需要此文件,以便Vagrant确定
它是为提供商制作的。如果您制作了盒子,请添加
"metadata.json"文件。如果是其他人制作的盒子,请
通知盒子创建者盒子已损坏。
的文档box文件格式可在以下URL中找到:
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系统,流浪者1.8.5,虚拟邮箱5.0.26。
package.box
文件是VM的zip文件,metadata.json
文件不能在package.box文件的旁边,而是在里面。
因此,在打包盒子之前,将元数据文件存储在VM文件旁边,类似
.
|-- box-disk1.vmdk
|-- box.ovf
|-- metadata.json
因此,当您运行vagrant package
时,它将包含元数据文件作为box文件的一部分。
免责声明:这不是一个答案,而是一个后续问题。
这看起来和我遇到的问题一模一样。由于我无法从Artifactory中获取元数据.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"
}
]
第二:我将web应用程序安装到映像中,并生成*.box
文件。
完成日期:
"post-processors": [
[
{
"output": "builds/devbox.box",
"type": "vagrant"
}
]
]