2014-12-11 55 views
0

我想弄清楚如何做一个简单的方法来发布一个“开发环境”与我的组织的Wordpress网站的工作。我们目前有一个运行Wordpress站点的本地Linux服务器,以及一个可怕的过时的VirtualBox镜像,这个服务器的表现很差。我们目前将其分发给团队成员进行本地开发,由于当地形象往往截然不同,导致很多问题。创建一个易于分发的开发环境 - Docker/Vagrant?

我并不太担心事物的数据库方面;我正在考虑每周从活动服务器进行转储,以便开发人员可以导入它们以保持其本地最新状态。

我更感兴趣的是在OSX或Windows上为用户分配预先配置的堆栈,该堆栈已经配置了PHP/Apache/MySQL,这是一个git客户端,用于在命令执行时提取所有静态文件, - 某些用户可以运行,然后转到localhost:8000来查看它。我也想让他们编辑从git仓库中提取的文件。

我目前正在研究Docker和Vagrant,但我不确定什么更适合这个任务 - Docker似乎更适合Linux机器。我知道Vagrant支持将外部文件夹映射到虚拟机,这似乎能够解决我的问题,但我想在开始学习厨师/木偶等之前征求更多建议。

回答

1

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

如果我必须开发Vagrant选项,我将安装一台机器,并在同一台机器上安装所有依赖项。要安装,您可以使用Vagrant中提供的其中一种预配置(例如:Chef,Puppet)。如果你有以前的经验和/或如果你不喜欢bash,这可能会更容易。有很多示例可以查看如何执行此操作,例如https://github.com/r8/vagrant-lamp

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