《最详细的docker+php开发环境教程》(五) 搭建开发环境概要

环境部署方式的优缺点

环境部署需要很多东西,也是开发过程与项目上线必须要考虑的一个重要环节,随着项目的迭代更新,系统会越来越庞杂,其所依赖的环境也会需要经常的变动更新,一个基本的项目就至少需要nginx、mysql、php、redis等服务。因此,开发时团队的开发环境的统一就是一个很骚的事情。随着项目越来越复杂,会导致以下一些问题:
1. 依赖的服务越来越多,本地开发环境的搭建成本越来越高
2. 由于团队成员使用的操作系统或者软件版本的不同,可能会导致线上出现bug
3. 每次新增一项服务的时候,所有的开发人员都需要重新配置一下环境
4. 在部署集群服务时,需要启动大量的虚拟机,需要高配的机器
5. 由于很多情况下都是将所有服务安装在一个虚拟机中,所以很难进行服务的水平扩展

以上三点问题,对于问题1、2、3都可以使用vagrant来统一管理虚拟机,各个开发人员使用统一的box,其实都是可以解决的,但是每次更新服务的时候,都需要更新box文件,在部署出现错误的时候也无法很方便的回退至原来的环境,尤其是在部署集群服务时,大量的虚拟机需要占用很多的内存。

本次的搭建方式

考虑到以上涉及到的几点问题,所以采用将服务拆分到容器的方式进行环境的搭建,就是一个容器一个服务。由于docker容器每次升级,都会留下上一个版本的image,所以即便部署错误,也能很容易的进行回退,有点版本管理的味道。

从Docker的设计可以看到,构建镜像的过程中可以指定唯一一个容器启动的指令,因此Docker天然适合一个容器只运行一种服务,而这也是官方更推崇的。

dockerFile

前面并没有介绍dockerFile,我会在搭建环境的过程中详细解释dockerFile的用法。这里就说明一下dockerFile几个常用关键字的意思。

FROM image_name
    指定镜像

COPY <宿主机路径> <容器路径> 
    复制宿主机文件到容器中

ADD <宿主机路径> <容器路径>  
    ADD命令和COPY命令很相似,但是ADD命令的<宿主机路径>可以直接使用url

EXPOSE 端口号
    开放容器端口,该命令与docker run中的-p参数不一样,
    -p参数表示绑定宿主机与容器的端口,EXPOSE只是开放了容器的端口,在宿主机中访问时需要使用container_ip:port,
    而-p参数指定的端口,在宿主机中访问时可以直接使用127.0.0.1:port访问。

RUN
    可以指定要在容器中执行的命令,可以使用该命令安装php扩展

准备工作

由于采用分服务方式搭建,事先需要准备好docker项目目录,将服务分好目录结构,如下

your-docker-path/
├── mysql/
│   ├── data/           // mysql的数据存放目录
│   ├── log/            // mysql的日志文件目录
│   └── Dockerfile
├── nginx/
│   ├── Dockerfile
│   ├── log/            // nginx日志文件目录
│   ├── nginx.conf      // nginx的配置文件
│   └── sites-enabled       // nginx的虚拟站点配置
│       ├── default.conf
├── php/
│   ├── Dockerfile
│   ├── log/            // php的日志文件目录
│   ├── php-fpm.conf        // php-fpm配置文件
│   ├── php.ini         // php配置文件
└── redis/
    ├── data/                   // redis持久化后的数据存放目录
    ├── log/                    // redis的日志文件目录
    ├── redis.conf              // redis配置文件   
    └── Dockerfile

如果需要其他服务,比如memcache,则新增一个memcache目录,配置好memcache的dockerFile文件即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值