Docker在PHP项目开发环境中的应用

北京的最好湿疹医院 http://m.39.net/baidianfeng/a_9083902.html

环境部署是所有团队都必须面对的问题,随着系统越来越大,依赖的服务也越来越多,比如我们目前的一个项目就会用到:

Web服务器:Nginx

Web程序:PHP+Node

数据库:MySQL

搜索引擎:ElasticSearch

队列服务:Gearman

缓存服务:Redis+Memcache

前端构建工具:npm+bower+gulp

PHPCLI工具:Composer+PHPUnit

因此团队的开发环境部署随之暴露出若干问题:

依赖服务很多,本地搭建一套环境成本越来越高,初级人员很难解决环境部署中的一些问题

服务的版本差异及OS的差异都可能导致线上环境BUG

项目引入新的服务时所有人的环境需要重新配置

对于问题1,可以用Vagrant这样的基于虚拟机的项目来解决,团队成员共享一套开发环境镜像。对于问题2,可以引入类似PHPBrew这样的多版本PHP管理工具来解决。但两者都不能很好地解决问题3,因为虚拟机镜像没有版本管理的概念,当多人维护一个镜像时,很容易出现配置遗漏或者冲突,一个很大的镜像传输起来也不方便。

Docker的出现让上面的问题有了更好的解决方案,虽然个人对于Docker大规模应用到生产环境还持谨慎态度,但如果仅仅考虑测试及开发,私以为Docker的容器化理念已经是能真正解决环境部署问题的银弹了。

下面介绍Docker构建PHP项目开发环境过程中的演进,本文中假设你的操作系统为Linux,已经安装了Docker,并且已经了解Docker是什么,以及Docker命令行的基础使用,如果没有这些背景知识建议先自行了解。

HelloWorld

首先还是从一个PHP在Docker容器下的HelloWorld实例开始。我们准备这样一个PHP文件index.php:

?phpecho"PHPinDocker";

然后在同目录下创建文本文件并命名为Dockerfile,内容为:

#从官方PHP镜像构建FROMphp#将index.php复制到容器内的/var/


转载请注明:http://www.aierlanlan.com/rzgz/171.html