bcmath,gd,grpc,intl,mongodb,phalcon,redis,swoole+nginx
3.3K
docker-compse.yml
version: '2'
services:
my-api:
container_name: my-api
image: flashexpress/php:72-base
restart: always
volumes:
- ./:/mnt/www/
ports:
- 6789:80
docker-compose up -d
curl 127.0.0.1:6789
Dockerfile-flash
docker build -t flashexpress/php -f base.Dockerfile .
FROM flashexpress/php:72-phalcon-s-m-r AS build
LABEL maintainer="flashexpress-php"
#docker build -t flashexpress/php:72-phalcon-apline -f Dockerfile-flash .
ENV TIME_ZONE=Asiz/Shanghai
RUN apk update && apk add --no-cache --virtual .build-deps \
icu \
icu-dev \
icu-libs \
g++ make autoconf \
libxml2-dev \
php7-pear \
php-gd \
freetype-dev \
libjpeg-turbo-dev \
libmcrypt-dev \
libpng-dev \
tzdata \
#设置时区
&& echo "${TIME_ZONE}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime
RUN docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" iconv \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j"$(getconf _NPROCESSORS_ONLN)" gd
RUN docker-php-ext-install \
bcmath \
intl \
pdo \
pdo_mysql \
pcntl \
xml \
zip \
mysqli \
sockets
RUN pecl install mcrypt \
&& docker-php-ext-enable mcrypt
#运行迷你容器
FROM php:7.2-fpm-alpine
ENV TIME_ZONE=Asiz/Shanghai
#这步骤是关键
COPY --from=build /usr/lib /usr/lib
COPY --from=build /usr/local/etc/php/conf.d /usr/local/etc/php/conf.d
COPY --from=build /usr/local/lib/php/extensions/no-debug-non-zts-20170718 /usr/local/lib/php/extensions/no-debug-non-zts-20170718
RUN apk update && apk add --no-cache --virtual .build-deps \
openssh \
git \
bash htop tmux \
tzdata \
#设置时区
&& echo "${TIME_ZONE}" > /etc/timezone \
&& ln -sf /usr/share/zoneinfo/${TIME_ZONE} /etc/localtime
# 安装composer并允许root用户运行
ENV COMPOSER_ALLOW_SUPERUSER=1
ENV COMPOSER_NO_INTERACTION=1
ENV COMPOSER_HOME=/usr/local/share/composer
RUN mkdir -p /usr/local/share/composer \
&& curl -o /tmp/composer-setup.php https://getcomposer.org/installer \
&& php /tmp/composer-setup.php --no-ansi --install-dir=/usr/local/bin --filename=composer --snapshot \
&& rm -f /tmp/composer-setup.* \
# 配置composer中国全量镜像
&& composer config -g repo.packagist composer https://packagist.phpcomposer.com \
&& composer self-update --stable
#4.ADD-NGINX
RUN apk add nginx
VOLUME ["/run/nginx","/run/php"]
COPY ./nginx/conf.d /etc/nginx/conf.d/
COPY ./nginx/nginx.conf /etc/nginx/nginx.conf
# #5.ADD-SUPERVISOR
RUN apk add runit
ADD ./runit/ /etc/service/
# 6.php conf
COPY ./php/php-fpm-pool/www.conf /usr/local/etc/php-fpm.d/zz-docker.conf
COPY ./php/php-ini/php.ini /usr/local/etc/php/php.ini
RUN mkdir -p /var/log/php && chown www-data:www-data /var/log/php
# #COPY ./i.php /mnt/www/public/
# 7.ADD-confd
COPY ./go/confd /usr/local/bin/
# 8.添加启动脚本
# Define working directory.
# # WORKDIR /mnt/www/
ADD ["runsvdir-start", "runit-wrapper", "/sbin/"]
# 10.启动脚本
CMD ["/sbin/runit-wrapper"]
#ENTRYPOINT ["./entrypoint.sh"]
Dockerfile-phalcon
docker build -t flashexpress/php:72-phalcon-s-m-r -f Dockerfile-phalcon .
FROM php:7.2-fpm-alpine
LABEL maintainer="flashexpress phalcon"
ARG PHALCON_VERSION=3.3.2
ARG PHALCON_EXT_PATH=php7/64bits
ENV REDIS_VERSION=4.2.0
ENV SWOOLE_VERSION=4.2.10
ENV TIME_ZONE=Asiz/Shanghai
# Compile Phalcon
RUN set -xe && \
curl -LO https://github.com/phalcon/cphalcon/archive/v${PHALCON_VERSION}.tar.gz && \
tar xzf ${PWD}/v${PHALCON_VERSION}.tar.gz && \
docker-php-ext-install -j $(getconf _NPROCESSORS_ONLN) ${PWD}/cphalcon-${PHALCON_VERSION}/build/${PHALCON_EXT_PATH} && \
# Remove all temp files
rm -r \
${PWD}/v${PHALCON_VERSION}.tar.gz \
${PWD}/cphalcon-${PHALCON_VERSION}
RUN apk update && apk add --no-cache --virtual .build-deps \
g++ make autoconf
RUN pecl install mongodb \
&& docker-php-ext-enable mongodb \
&& pecl install swoole \
&& docker-php-ext-enable swoole \
&& pecl install redis-${REDIS_VERSION} \
&& docker-php-ext-enable redis
RUN apk del .build-deps
Content type
Image
Digest
Size
180.4 MB
Last updated
over 4 years ago
docker pull flashexpress/php