249建站之家:在win8下用vagrant和docker构建LNMP环境

一个成熟的PHP研发团队,一定拥有强大的开发环境构建能力,工欲善其事必先利其器。


今天就和大家聊一聊,我们PHP研发是如何打造轻量级的研发环境构建能力的。


首我们的构建环境能力需要满足这些要求:


1)一键启动/关闭/重启/初始化项目开发环境。


2)完全一致的环境复制和迁移能力。


3)一切即代码,超轻量级的环境定义能力。


如何做到一键构建环境呢?


首先,我们每天的是这样开始的:


开机,双击job.bat,然后等待片刻,LNMP环境启动ok。


-> 整个环境目录如下:


vagrant

- vagrantfile

- lnmp

- app

   - hello

- mysql

- data

- sql

- my.cnf

- Dockerfile

- nginx

- nginx.conf

- conf.d

hello.conf

- php

   - php.ini

   - Dockerfile


-> 环境准备:


win8操作系统

git 

vagrant 1.9.1

virtualbox 5.1.14

docker 17.04.0.ce

docker-compose 1.13.0


-> 环境搭建过程:


1 win上安装vagrant,virtualbox,git


2 从git仓库获取环境配置定义文件和项目代码,

包括Vagrantfile, dockerfile, docker-compose.yml,appcode


3 下载vagrant.box(可以是官网初始的linux box, 也可以是经过环境初始化的box)


4 vagrant up 启动Linux虚拟环境


5 linux 下安装git, docker, docker-compose(如果是经过初始化的box,这些应该都已经配置好了)


6 进入项目目录(该目录是挂载和同步的win下的git项目目录,也就是说项目代码和环境定义文件已经存在了)


7 docker-compose up -d 启动lnmp环境(如果一切顺利的话,环境就启动ok了)


8 配置hosts,如www.hello.in,访问项目应用。


你会发现,整个过程除了安装几个软件外,几乎不需要配置什么,包括nginx.conf php.ini 等等


-> 查看环境运行状况:


1 vagrant  global-status



2 docker-compose ps 




-> 轻量级的环境定义能力


1 git仓库(是的你只要告诉另一个新伙伴你们的环境仓库就ok了)


Vagrantfile

Dockerfile

docker-compose.yml

my.cnf

nginx.conf

php.ini


appcode(建议环境仓库和项目仓库分开)


2 vagrant.box (由于官网的box下载更新太慢,所以你应该预先准备好)


3 php/nginx/mysql docker image (当然,这个如果你用阿里云的镜像库的话,速度还是可以的)



-> 完全一致的环境复制能力


这里你会发现,开发/测试/预发,我们完全可以通过这种方式去方便的构建,


当然,如果你对docker具备一定的运行维护能力,完全可以在【线上】如此构建,


但是,很多时候,我们线上生产环境是以集群出现的,这里就会用到【容器编排引擎】了。



-> 版本升级,增改模块,扩展等等


当我们需要进行软件版本升级,如nginx/php/mysql等等,

当我们需要增改模块,扩展时,怎么操作呢?


这时我们只需要去维护和更新我们的环境定义配置文件即可,如,vagrantfile,dockerfile


其他小伙伴只需要更新这些文件,按照初始方式重建环境即可。

ok,今天就聊这么多,如果你有更好的选择和建议,欢迎拍砖和探讨。


推荐

  • QQ空间

  • 新浪微博

  • 人人网

  • 豆瓣

取消