【问题标题】:Creating an easily-distributable dev environment - Docker/Vagrant? [closed]创建一个易于分发的开发环境——Docker/Vagrant? [关闭]
【发布时间】:2014-12-11 00:32:08
【问题描述】:

我正在尝试找出一种简单的方法来分发“开发环境”,以便与我组织的 Wordpress 网站一起工作。我们目前有一个运行 Wordpress 站点的本地 Linux 服务器,以及一个非常过时的 VirtualBox 映像,并且该服务器的表示非常差。我们目前将其分发给团队成员以供他们进行本地开发,这会导致很多问题,因为本地图像通常差异太大。

我不太担心数据库方面的事情;我正在考虑每周从实时服务器进行转储,开发人员可以将其导入以保持本地最新。

我更感兴趣的是找到一个易于分发给 OSX 或 Windows 上的用户的预配置堆栈,这些堆栈已经由我配置了 PHP/Apache/MySQL,一个 git 客户端设置为通过命令提取所有静态文件——用户可以运行的东西,然后去 localhost:8000 看到它。我还希望他们可以通过某种方式来编辑从 git 存储库中提取的文件。

我目前正在研究 Docker 和 Vagrant,但我不确定哪个更适合这项任务 - Docker 似乎更适合 Linux 机器。我知道 Vagrant 支持将外部文件夹映射到 VM 中,这似乎可以解决我的问题,但我想在开始学习 Chef/Puppet/etc 之前寻求更多建议。

【问题讨论】:

    标签: vagrant docker development-environment


    【解决方案1】:

    我认为 Vagrant 和 Docker 都可以用来解决您的问题。 Vagrant 可能更适合与 Windows/mac 机器共享环境,但在这些系统中与 Docker 的集成每天使用诸如 boot2docker 之类的工具会更好。 相比之下,Docker 需要使用现代 Linux 内核或其中一种工具。

    如果我必须开发 Vagrant 选项,我会设置一台机器,将所有依赖项安装在同一台机器上。要安装,您可以使用 Vagrant 中可用的配置器之一(例如:Chef、Puppet)。如果您以前有使用它们的经验和/或如果您不是很热衷于 bash,这可能会更容易。有很多例子你可以看看你是怎么做到的,比如https://github.com/r8/vagrant-lamp

    使用 Docker 也是一个很好的选择。回答您的问题,您可以与容器共享主机的任何本地文件夹(使用 docker run 选项 -v--volume)。在这种情况下,我会将您想要提供的每个服务(即:php 服务器、MySQL、Apache ..)作为独立容器运行,并使用 docker run 选项--link 链接它们。编写 Dockerfile 来构建容器可能比使用 Chef 或 Puppet 更困难(尽管您可以使用它们来构建容器,但集成不如 Vagrant 好)。但是使用 Docker,您可以提前使用 Docker Hub 中可用的所有应用程序。另外,我会向您推荐一个名为 fig (www.fig.sh) 的 docker 工具,它可以让运行容器集群轻松链接和配置服务,并且允许以非常舒适的方式管理所有容器。同样,您可以在 Internet 上找到该用户案例的非常说明性示例,例如 https://github.com/kasperisager/phpstack

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-25
      • 2013-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 2021-12-17
      相关资源
      最近更新 更多