LEN

Docker 自定义 PHP+Swoole 开发环境
今天治雨同学 分享了docker环境搭建教会了我 如何使用 docker 搭建 PHP环境 治雨 使用 docke...
扫描右侧二维码阅读全文
20
2019/10

Docker 自定义 PHP+Swoole 开发环境

今天治雨同学 分享了docker环境搭建
教会了我 如何使用 docker 搭建 PHP环境

治雨 使用 docker 的环境,例子: https://github.com/justinchou/docker-example

记录下我搭建的流程

首先保证本地安装了 docker

下载 docker-example 项目 git clone https://github.com/justinchou/docker-example.git

docker.png

从上面可以看到 php-build 使用的编译版PHP

 # 进入项目目录 我们可以看到 
 $ cd docker-example
 $ ls

 1.networks-example  2.lnmp-example  README.md  centos  docs  php-build    php-bundle        remove_none_images.sh

目录结构如上 .
我们构建环境首先需要创建一个centos 初始环境, 内部yum安装一些必备依赖, 安装centos7 环境

cd centos 
sh build.sh  # docker build -t bccq/centos 

上面环境创建ok 了 到重头戏了 我们phper 的php 环境 . 文档中有介绍 dome 中写好了 两种环境 一种是 是安装swoole的, 另一种 fpm cgi 的环境.
我选择 php-build 编译安装 (缺点安装慢) 但是安装较为顺手. 由于个人需要 我添加PHP扩展 redis mongo swoole4.3 编译时更加是什么常用扩展都装.

Dockerfile 如下图 .

php.png

需要注意的是 COPY ./phpconf/php.ini /usr/local/php7/etc/php.ini
这里由于 php编译安装扩展 生成的所以需要知道扩展安装的位置 修改

    extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/mongodb.so
    extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/redis.so
    extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20180731/swoole.so

好了 步骤也是 cd php-build && sh build.sh

下面就需要组网了. 选择使用 2.lnmp-example

cd 2.lnmp-example && ls
MyExchange  cgi  docker-compose.yml  mysql  nginx  nodejs  swoole

介绍下目录

MyExchange php项目

# Dockfile
# 依赖于 之前构建的 php-build 镜像 
FROM bccq/php-build
    
LABEL version="1.0"
LABEL maintainer="justinchou<zhou78620051@126.com>"
    
# 工作根路径 
WORKDIR /var/exchange
    
# 映射本地文件到镜像文件夹
VOLUME . /var/exchange  
    
# 镜像启动运行 该环境能运行就多久取决于这条命令的运行时间
ENTRYPOINT php /var/www/index.php

mysql mysql持久化目录 内有 conf data logs

划重点来了 docker-compose.yml 通过 该配置 搭建php+swoole+mysql+redis 系统, 配置如下
docke1.png

# 构建容器 当前目录下必须要能找到 `docker-compose.yml` 文件
cd  2.lnmp-example   
docker-compose up -d --build 
docker-compose down 

上面前两条命令 分别构建容器与 删除所有容器,镜像. 踩个坑 如果有修改 Dockerfile 那么你直接重新构建是不会成功的. 需要先删除容器 在 重新构建 .

好了 上面解简单介绍了 使用 Dockerfile 创建容器 及 使用 docker-compose 简单组件开发环境的流程.
我也fork 了 同事的项目将我自定义Dockerfile 上传到我的 git 中 https://github.com/libenfu/docker-example.

感谢 治雨同学的 帮助, 周末加班学习到了新知识.

最后修改:2019 年 10 月 20 日 01 : 32 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论