小编use*_*756的帖子

预填充 vagrant 同步文件夹内容

我目前正在构建一个相当复杂的服务器堆栈(一个 ruby​​ on rails 应用程序),我希望开发人员能够在不必自己安装所有东西的情况下工作。因此我使用 Vagrant 来允许他们这样做。

这个想法是,当您第一次安装映像时,它将拉取最新的源并安装依赖项,源通过同步文件夹公开(vagrant 内置功能),以便开发人员可以提交源并在他们自己的环境中编辑它们。Vagrant-box 仅用于服务器。

Vagrantfile 中的同步文件夹条目:

config.vm.synced_folder "gameeso/", "/var/gameeso", :create => "true" 
Run Code Online (Sandbox Code Playgroud)

该图像是一个带有 upstart 脚本的 Ubuntu 服务器(脚本在启动时执行,并且仅在 Internet 连接启动时执行):

  • 从 Github 拉取最新的开发分支(如果文件夹不存在)

  • 安装依赖项(这是由脚本完成的)

  • 启动服务器

所有这些都发生在一个同步文件夹中。我对这种方法有一些问题,主要是 Vagrant 清除了我的来宾系统上的同步文件夹。 我通过在 upstart 脚本中添加 'sleep 10' 解决了这个问题,所以它可以等到 Vagrant 设置同步文件夹。

当然,这不是一种安全的方法(如果启动时间超过 10 秒,虽然现在不太可能,我宁愿不知道;))

我的问题是:有没有更好的方法让来宾主机(流浪者图像)填充同步文件夹?

当然,非常感谢提前!

ubuntu ruby-on-rails upstart vagrant

5
推荐指数
1
解决办法
1225
查看次数

标签 统计

ruby-on-rails ×1

ubuntu ×1

upstart ×1

vagrant ×1