docker build php 镜像

文件夹结构

docker-compose.yml
version: '2.0'
services:

  php-fpm:
    build: ./php
    ports:
      - "9002:9002"
    restart: always
    command: /bin/sh -c "php-fpm"
    networks:
        - my-net
networks:
  my-net:
    driver: bridge
Dockerfile

包含了mongodb扩展

FROM php:7.2-fpm

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 更新安装依赖包和PHP核心拓展
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libxml2-dev \
        libcurl4-openssl-dev \
        libxslt1-dev  \
        supervisor \
        cron \
        libssl-dev\
    && pecl install mongodb \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install zip \
        && docker-php-ext-install xml \
        && docker-php-ext-install curl \
        && docker-php-ext-install mbstring \
        && docker-php-ext-install xsl \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install opcache \
        && docker-php-ext-install mysqli \
        && docker-php-ext-enable mongodb \
        && rm -r /var/lib/apt/lists/*

WORKDIR /wwwroot

# Write Permission
RUN useradd  www
RUN usermod -a -G root www
RUN usermod -u 1000 www
RUN groups www
RUN id www
RUN mkdir -p /var/log/php-fpm/
RUN mkdir -p /var/run/supervisor/

2020-06-17 新增ssh2扩展

FROM php:7.2-fpm

# 设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

# 更新安装依赖包和PHP核心拓展
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
        libxml2-dev \
        libcurl4-openssl-dev \
        libxslt1-dev  \
        supervisor \
        cron \
        libssl-dev \
        libssh2-1-dev \
        libssh2-1 \
    && pecl install mongodb \
    && pecl install ssh2-1.0 \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install zip \
        && docker-php-ext-install xml \
        && docker-php-ext-install curl \
        && docker-php-ext-install mbstring \
        && docker-php-ext-install xsl \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install opcache \
        && docker-php-ext-install mysqli \
        && docker-php-ext-enable mongodb \
        && docker-php-ext-enable ssh2 \
        && rm -r /var/lib/apt/lists/*

WORKDIR /wwwroot

# Write Permission
RUN useradd  www
RUN usermod -a -G root www
RUN usermod -u 1000 www
RUN groups www
RUN id www
RUN mkdir -p /var/log/php-fpm/
RUN mkdir -p /var/run/supervisor/