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空间
-
新浪微博
-
人人网
-
豆瓣
