栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

使用Docker容器编排 搭建PHP开发环境

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Docker容器编排 搭建PHP开发环境

最近有两个项目需要使用PHP进行实现。
本文仅作关键步骤和基本原理记录

Docker容器环境概要

开发环境使用DockerComposer进行构建,分为两个容器。

  • Nginx
  • PHP-FPM

Nginx通过Docker容器编排内网调用PHP-FPM
Nginx、PHP配置以及代码通过挂载方式挂入

docker-composer.yml
version: '3'

services:
  nginx:
    image: nginx:latest
    ports:
      - 80:80
    volumes:
      - ${NGINX_LOG}:/var/log/nginx
      - ${NGINX_WWWROOT}:/var/www/html
      - ${NGINX_CONFIG}:/etc/nginx 
    restart: always
  
  phpfpm:
    build: ./php
    ports:
      - 9000:9000
      - 9001:9001
    volumes:
      - ${PHP_CONFIG}:/usr/local/etc/php
      - ${NGINX_WWWROOT}:/var/www/html
    restart: always
.env
NGINX_LOG=./nginx/log/
NGINX_WWWROOT=./nginx/wwwroot/
NGINX_CONFIG=./nginx/conf/

PHP_CONFIG=./php/conf/

# config文件夹需要提前使用docker cp备一份在宿主机,否则容器启动时不会自动创建。
dockerfile(phpfpm)
FROM php:7.3.8-fpm

RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak 
    && echo 'deb http://mirrors.aliyun.com/debian/ buster main non-free contrib' > /etc/apt/sources.list 
    && echo 'deb http://mirrors.aliyun.com/debian-security buster/updates main' >> /etc/apt/sources.list 
    && echo 'deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib' >> /etc/apt/sources.list 
    && echo 'deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib' >> /etc/apt/sources.list 
    && apt-get update 
    && export CFLAGS="$PHP_CFLAGS" CPPFLAGS="$PHP_CPPFLAGS" LDFLAGS="$PHP_LDFLAGS" 
    && apt-get install -y --no-install-recommends libfreetype6-dev libjpeg62-turbo-dev libpng-dev libmagickwand-dev libmcrypt-dev libmemcached-dev zlib1g-dev 
    && rm -rf /var/lib/apt/lists/* 
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ 
    && docker-php-ext-install -j$(nproc) bcmath calendar exif gettext sockets dba mysqli pcntl pdo_mysql shmop sysvmsg sysvsem sysvshm iconv gd 
    && pecl install imagick-3.4.4 mcrypt-1.0.2 memcached-3.1.3 redis-5.0.2 xdebug-2.7.2 swoole-4.4.3
    && docker-php-ext-enable imagick mcrypt memcached redis xdebug swoole 
    && docker-php-ext-configure opcache --enable-opcache && docker-php-ext-install opcache
    
RUN cd /tmp 
    && php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" 
    && php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" 
    && php composer-setup.php 
    && php -r "unlink('composer-setup.php');" 
    && mv composer.phar /usr/local/bin/composer

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913524.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号