文章简介

在后面几篇文章中,咱们应用dnmp搭建了一个残缺的docker开发环境。这篇文章接着分享如何在dnmp的根底上搭建一个自定义的PHP容器,实现多版本的PHP容器。

后期筹备

首先咱们下载dnmp仓库。
复制docker-compose.sample.yml文件为docker-compose.yml

cp docker-compose.sample.yml docker-compose.yml

复制env.sample为.env

cp env.sample ./env

批改配置

首先咱们依据须要在.env文件中配置好PHP容器须要映射的端口等信息。增加如下配置(可放在任意地位):

## PHP73#PHP73_VERSION=7.3.22PHP73_PHP_CONF_FILE=./services/php73/php.iniPHP73_FPM_CONF_FILE=./services/php73/php-fpm.confPHP73_LOG_DIR=./logs/phpPHP73_EXTENSIONS=pdo_mysql,mysqli,mbstring,gd,curl,opcachePHP_SWOOLE1_PORT=9504PHP_SWOOLE2_PORT=9505PHP_SWOOLE3_PORT=9506PHP_SWOOLE4_PORT=9507PHP_SWOOLE5_PORT=9508PHP_SWOOLE6_PORT=9509
这里的swoole能够依据本人的须要定义,比方你只须要映射一个端口9505,间接值配置一个9504。只须要与上面的.docker-compose.yml一一对应起来即可。

接下来,配置doker-compose.yml文件。只须要增加如下内容即可:

  php73:    build:      context: ./services/php      args:        PHP_VERSION: php:${PHP73_VERSION}-fpm-alpine        CONTAINER_PACKAGE_URL: ${CONTAINER_PACKAGE_URL}        PHP_EXTENSIONS: ${PHP56_EXTENSIONS}        TZ: "$TZ"    container_name: php73    ports:      - "${PHP_SWOOLE1_PORT}:9504"      - "${PHP_SWOOLE2_PORT}:9505"      - "${PHP_SWOOLE3_PORT}:9506"      - "${PHP_SWOOLE4_PORT}:9507"      - "${PHP_SWOOLE5_PORT}:9508"      - "${PHP_SWOOLE6_PORT}:9509"
这里的container_name能够依据本人的须要来配置,倡议依据你的PHP版本号定义容器名字。

装置容器

通过下面简略的配置,咱们接下来运行如下命令,就能够搭建一个残缺的PHP容器了:

docker-compose up

装置完之后,查看成果:

CONTAINER ID        IMAGE                COMMAND                  CREATED             STATUS              PORTS                                        NAMES0e1376e67300        dnmp_php73           "docker-php-entrypoi…"   35 hours ago        Up 42 minutes       9000/tcp, 0.0.0.0:9504-9509->9504-9509/tcp   php73

证实咱们的自定义容器装置胜利了,接下来,咱们就配置nginx如何应用该容器。

应用容器

应用该容器超级简略,只须要在nginx配置时,指向咱们创立好的容器即可。

server {        listen 80;        server_name baidu.com;        root /www/mini-program-server/web;        index index.php index.html;        access_log  /var/log/nginx/nginx.baidu.error.log;        error_log  /var/log/nginx/nginx.baidu.access.log;        include rewrite/thinkphp.conf;        location ~ \.php$ {              # 只须要将这里的PHP73写成咱们创立好的容器名称即可。                fastcgi_pass   php73:9000;                fastcgi_index  index.php;                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;                include        fastcgi_params;        }}

最终论断

通过该形式,咱们创立其余的容器也是相似的形式,只有配置好即可。

文章均来自微信公号:卡二条的技术圈