Sign inSign up

flashexpress/php

By flashexpress

•Updated over 4 years ago

bcmath,gd,grpc,intl,mongodb,phalcon,redis,swoole+nginx

Image
3

3.3K

flashexpress/php repository overview

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

Tag summary

Content type

Image

Digest

Size

180.4 MB

Last updated

over 4 years ago

docker pull flashexpress/php