【发布时间】:2017-06-29 05:03:50
【问题描述】:
我已经将一个 Vagrant 盒子上传到 Vagrant Cloud。我的盒子有一些自定义配置,所以我想自定义使用vagrant init. 创建的 Vagrantfile,Vagrant 文档没有太大帮助。
我正在通过分发正确的 Vagrantfile 来解决这个问题,但我希望用户只需初始化该框并获取我的自定义 Vagrantfile。这甚至可能吗?
【问题讨论】:
标签: vagrant
我已经将一个 Vagrant 盒子上传到 Vagrant Cloud。我的盒子有一些自定义配置,所以我想自定义使用vagrant init. 创建的 Vagrantfile,Vagrant 文档没有太大帮助。
我正在通过分发正确的 Vagrantfile 来解决这个问题,但我希望用户只需初始化该框并获取我的自定义 Vagrantfile。这甚至可能吗?
【问题讨论】:
标签: vagrant
您可以将 Vagrantfile 与您的盒子一起打包。
您可以查看一些常见的框,例如 ubuntu/trusty64 或 ubuntu/xenial64,它们带有自己的 Vagrantfile(您可以查看 ~/.vagrant.d/boxes/<name>/<version>/<provider>/Vagrantfile 下的 Vagrantfile
你可以阅读Vagrantfile load order and merging:vagrant 首先从框中读取 Vagrantfile,这些参数可以被项目目录中的主 Vagrantfile 覆盖
在过去,您会使用vagrant package 命令,而https://www.vagrantup.com/docs/cli/package.html 上仍有一些不错的文档
一个常见的误解是
--vagrantfile选项将打包一个 与此框一起使用 vagrant init 时使用的 Vagrantfile。这个 并非如此。相反,一个 Vagrantfile 被加载并作为 使用 box 时的 Vagrant 加载过程。了解更多信息, 阅读有关 Vagrantfile 加载顺序的信息。
【讨论】: