Public Repository

Last pushed: a year ago
Short Description
php 很多扩展是没有安装的,所以还需在基础的镜像上创建出新的镜像
Full Description

1、php 很多扩展是没有安装的,所以还需在基础的镜像上创建出新的镜像。
需要的目录结构:

composer.phar php 依赖管理器
Dockerfile 需要编写的dockerfile文件
php-cp-1.5.0.tar.gz 数据库或者redis 连接池
php.ini php配置文件
pool.ini 连接池配置文件
redis-3.1.1.tgz php-redis扩展
startup 因为需要启动pool_server 和 php fpm,所以就用一个脚本来运行了。

Dockerfile 内容如下:
FROM php:7.1.3-fpm-alpine
COPY php.ini /usr/local/etc/php/php.ini
COPY pool.ini /etc/pool.ini
COPY redis-3.1.1.tgz /usr/local/src/redis-3.1.1.tgz
COPY php-cp-1.5.0.tar.gz /usr/local/src/php-cp-1.5.0.tar.gz
COPY composer.phar /usr/local/bin/composer
COPY startup /run
RUN docker-php-source extract \
&& cd /usr/local/src \
&& tar xzf redis-3.1.1.tgz \
&& tar xzf php-cp-1.5.0.tar.gz \
&& rm redis-3.1.1.tgz php-cp-1.5.0.tar.gz \
&& mv redis-3.1.1 /usr/src/php/ext/redis \
&& cp -r php-cp-1.5.0 /usr/src/php/ext/phpcp \
&& docker-php-ext-install redis \
&& docker-php-ext-install phpcp \
&& docker-php-source delete \
&& docker-php-ext-install pdo_mysql \
&& apk add --no-cache --virtual .build-deps libmcrypt-dev icu-dev libxslt-dev \
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) iconv mcrypt zip mcrypt intl xsl \
&& apk add --no-cache freetype-dev libjpeg-turbo-dev libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) gd \
&& chmod +x /usr/local/bin/composer \
&& chmod +x /run/startup
CMD ["/run/startup"]

startup 内容如下:

#!/bin/sh
cd /usr/local/src/php-cp-1.5.0;
php pool_server start
php-fpm

Docker Pull Command
Owner
wpxun