Vagrant打包文件缺少文件。

6

我无法弄清如何从打包的vagrant box中获取已包含的文件。

此包是通过以下命令创建的:

$ vagrant package --include mydirectory/ --output mypackage.box

然后添加盒子。
$ vagrant box add mypackage.box --name myPackageWithFiles

然后执行init和vagrant up命令。
$ vagrant init myPackageWithFiles
$ vagrant up

但是当我通过ssh登录到新创建的vagrant box时,没有看到"mydirectory/"目录。但是在我的本地机器上可以看到它:
$ ls ~/.vagrant.d/boxes/myPackageWithFiles/0/virtualbox/include/
mydirectory/

我该如何将这个目录添加到我的 Vagrant 虚拟机中?我需要在 Vagrantfile 中添加什么吗?

很可能你的Vagrantfile已经损坏了,而config.vm.box指向了错误的盒子。 - signonsridhar
2个回答

0

尝试在Vagrant文件的end行之前添加以下内容:

config.vm.synced_folder "~/.vagrant.d/boxes/myPackageWithFiles/0/virtualbox/include/mydirectory/", "~/mydirectory"

第一个参数是本地路径,第二个参数是远程文件夹的路径。


此外还有许多其他参数,您可以在这里阅读。


1
如果我要选择这条路线,我可能会使用NFS。但这似乎是一种hack方法。我宁愿找出为什么在第一次执行vagrant init/up时文件没有被包含进来。 - trotha01

0

你需要在vagrant package命令中传递--base选项。否则它会忽略你的包含选项。如果你正在使用VirtualBox,那么--base的参数是VirtualBox中虚拟机的名称,类似于mybox_default_1470762777375_10784。找到这个名称最简单的方法是打开VirtualBox Manager GUI。

我刚开始创建Vagrant boxes,发现这种行为非常奇怪。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接