【问题标题】:Should Fig be on inside of Vagrant VM or outside for OSX?Fig 应该在 Vagrant VM 内部还是 OSX 外部?
【发布时间】:2014-11-26 21:32:50
【问题描述】:

我一直在尝试在 OSX 上挖掘 Docker、Fig、boot2docker、Vagrant 的文档和 youtube 视频,但不幸的是遇到了许多矛盾或过时的信息。

我正在尝试使用 Fig 在 OSX(应用程序和 MySQL)上简单地获取 2 个 docker 容器。我的第一个问题是,Fig 是应该在 Vagrant VM 之外运行(即从 OSX 中的终端命令行)还是应该在 Vagrantfile 中以便您“vagrant ssh”然后从内部运行 fig 以启动容器?或者你可以两种方法都做吗?每种方法各有利弊吗?

我对这一切都是新手,我了解 Docker 基本上共享操作系统的基础知识,但操作系统必须是 Linux,因此需要 boot2docker(启动 Tiny Linux)或带有 Ubuntu 的 Vagrant 或CoreOS 什么的。在 Vagrant SSH 中启动 fig 会更有意义,因为您现在基本上是在模拟如果您在开发机器上运行 Linux 作为本机操作系统通常会发生的情况。

我知道你可以在没有 Vagrant 的情况下运行 fig,但是你会丢失文件夹同步,这使得在 OSX 上使用 IDE 进行开发变得更加困难。

【问题讨论】:

    标签: macos vagrant docker boot2docker fig


    【解决方案1】:

    fig 应该安装在您的主机环境中,一旦安装,例如通过自制程序,然后在与 dockerfile 相同的目录中配置一个 fig.yml,然后键入 fig up。更多信息请访问 fig 网站here

    /编辑:

    所以目前 dig 的文档有点糟糕,但基本上 dockerfile 和 fig.yml 都需要指向共享目录。

    因此,如果您的代码位于名为 code 的目录中,该目录与您的 dockerfile 和 fig.yml 位于同一目录中,请确保它在您的 dockerfile 中声明如下:

    ADD . /code
    WORKDIR /code
    

    fig.yml 中应该这样定义:

    volumes:
       - .:/code
    

    因此,当您运行 fig up 时,它应该对应用程序可用。目前在 fig 网站上有针对 djangorails 的特定指南。

    【讨论】:

    • 那么在这种情况下(我已经做过几次),如何将本地 OSX 上的代码文件夹同步到 fig 创建的容器?这些说明仅在您使用提供精简 Linux 操作系统的 boot2docker 时才有效。但是在这里尝试在容器和操作系统之间同步代码会失败,因为容器只能看到 boot2docker 操作系统,而不是您的本机 Mac 操作系统。
    • 我理解您因文档不佳而感到沮丧 - 我已经用更多信息更新了答案。希望对您有所帮助。
    【解决方案2】:

    我习惯做的是

    1. 直接使用 boot2docker 中的共享文件夹功能(从 1.3.x 开始)

    从 boot2docker 1.3.x 版本开始,默认情况下通过 VirtualBox Guest 支持共享文件夹。

    1. fig 是在 MacOS 中通过 boot2docker 直接安装的,这是在 MacOS 中安装的

    http://www.fig.sh/install.html

    1. (可选)使用 fig docker 容器(适用于 Windows)

    https://github.com/larrycai/docker-images/tree/master/fig

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-06
      • 2021-01-05
      • 2014-10-28
      • 2018-06-30
      • 2010-09-20
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      相关资源
      最近更新 更多