如何在流浪盒中打包synced文件夹

时间:2015-02-11 14:07:34

标签: node.js vagrant web-deployment vagrantfile

到目前为止我想要和实现的目标: 我想创建一个自定义流浪盒,包括配置和应用程序,以便在不同的客户端或服务环境中重用它。

具体来说,我设法创建了基于Ubuntu(exact / 64)的vagrant box,它安装了node.js,然后将它打包到我的dev机器上

  

vagrant package my-box --output filename.box

我能够将filename.box复制到远程服务器并将vagrant up复制到那里。 Node.js按预期安装在vagrant框中。

问题是,我无法打包同步文件夹vagrant中的文件。启动远程服务器上的框后,同步文件夹为空

因此,我在本地计算机上开发的应用程序不包含在框中。

我试图找到一个解决方案或有关此行为的任何信息,但除了this unanswered Post我在网上找不到任何内容。

我的问题:

  1. 如何保存同步文件夹中的文件并将其打包到filename.box中,以便在服务器环境中重复使用。
  2. 这甚至可能吗?我看到一个bug或者Vagrant的行为是不是也意味着打包文件?
  3. 到目前为止,我没有对同步文件夹进行任何配置。是否可以打包来自与常规/vagrant不同的同步文件夹中的文件?
  4. 如果根本不可能,那么部署或重新使用流浪环境(包括应用程序)的最佳做法是什么?

2 个答案:

答案 0 :(得分:3)

您无法打包已同步的文件夹,但绝对可以使用您想要的内容。

实现此目的的最简单方法是将数据放在框中的其他目录中(从而确保它与框一起打包)。在Vagrant框的配置过程中,将数据移动或复制到同步目录。

一旦该框启动并运行,同步目录将包含您想要的文件。

答案 1 :(得分:2)

1-3)否。这是不可能的,并不打算以您期望的方式工作。 将VirtualBox的共享文件夹视为远程计算机上的已装入卷。它不是虚拟机文件系统的一部分。实际数据保存在主机上,而不是虚拟机上。

4)如果您想在盒子中添加数据,只需将数据复制到vm,然后再打包。无需使用共享文件夹。