Docker中安装PHP扩展踩坑

Docker中安装扩展坑还是挺多的,各种依赖不全。不像lnmp一键包默认就给你装好了常用的扩展。这里直接给个Dockerfile
这个Dockerfile包含扩展:

  • gd
  • exif
  • mysqli
  • pdo_mysql
  • zip
  • imagick
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    FROM php:7.4.3-fpm-alpine

    ENV TIME_ZONE=Asia/Shanghai

    RUN ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime \
    echo $TIME_ZONE /etc/timezone \
    apk update \
    apk --no-cache add autoconf gcc g++ make ffmpeg graphicsmagick zip zlib-dev libjpeg-turbo-dev libpng-dev freetype-dev imagemagick-dev libzip-dev \
    docker-php-ext-configure gd --with-freetype --with-jpeg \
    docker-php-ext-install gd \
    docker-php-ext-install exif mysqli pdo_mysql zip \
    pecl install imagick \
    docker-php-ext-enable imagick
    需要注意的是gd的安装需要先用--with-freetype --with-jpeg参数configure一遍,不然装完后是不完整的,没有jpeg的支持,像wordpressh5ai就没法正常使用