【问题标题】:Does Vagrant need the source code locally?Vagrant 是否需要本地源代码?
【发布时间】:2013-01-17 21:19:56
【问题描述】:

假设我在我的机器上本地有一个 rails 应用程序,我在该应用程序中使用 vagrant。

我已经研究过那个流浪汉并用它做了一个盒子。

现在我把盒子给别人了。

其他人是否需要在他们的机器上本地拥有 rails 应用程序的源代码,或者他们可以使用我提供的 vagrant box 而不需要本地源代码?

【问题讨论】:

    标签: ruby-on-rails vagrant


    【解决方案1】:

    我们在下一个方案中使用 Vagrant for VDE(虚拟开发环境)(也许它对你也有用):

    1. 我们将源代码保存在 git 下(可以是 svn/csv/etc);
    2. 我们将 Vagrantfile 保存在 git 存储库的根文件夹中;
    3. 在 Vagrantfile 中我们添加:

      config.vm.box_url = "http://<url for our box>"
      
      nfs = !Kernel.is_windows?
      
      config.vm.share_folder "v-root", "/tmp/vde", ".", :nfs => nfs
      

    我们将盒子存储在 S3 上很简单,但最简单的方法可以是保管箱。

    所以要共享您的资源,您只需要共享存储库。在 Readme.md 你 可以描述启动 vde 的几个步骤

    使用 share_folder 您的所有资源都可以从文件夹 /tmp/vde 中的 vde(内部实例)获得

    【讨论】:

      【解决方案2】:

      通常,您的 Rails 应用程序的源代码是从您自己的文件系统共享到您使用 Vagrant 运行的虚拟机;它没有存储在虚拟机的驱动器上。该应用程序实际上永远不会永久存储在盒子上。因此,将其发送给其他人将不允许他们运行该应用,因为该应用在 VM 上不存在。

      欲了解更多信息,请参阅"Accessing the Project Files" on the Vagrant SSH Documentation

      访问项目文件

      Vagrant 通过使用 VirtualBox 共享文件夹将您的应用程序与虚拟环境连接起来。虚拟机上的共享文件夹位置默认为/vagrant,但可以更改。这可以通过在 SSH 会话中列出该文件夹中的文件来验证:

      vagrant@vagrantbase:~$ ls /vagrant
      index.html Vagrantfile
      

      VM 对共享文件夹具有读写权限。

      记住:任何更改都会在两个系统之间进行镜像。

      【讨论】:

      • @SergioTulentsev 我以为 nik 是在谈论开发,而不是部署,即 really what Vagrant is for
      • 我并不是说我在生产中使用它。除其他外,测试部署非常有用。所以我正在部署所有代码更改(而不是共享文件夹)。 Dev-prod parity 越来越近了。
      猜你喜欢
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 2015-09-03
      相关资源
      最近更新 更多