docker环境中安装gd扩展

方案1

一般情况下可能会想到安装命令
docker-php-ext-install gd
但是很有可能出现错误
configure: error: png.h not found.
因为可能本身没有安装png等处理库

方案2
#更新安装依赖资源库
apt update
#安装基础库
apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev
#设置配置文件
docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 --with-ttf --enable-gd-native-ttf
#安装扩展
docker-php-ext-install gd
#使扩展可用
docker-php-ext-enable gd

安装过程中如果出现了以下错误,可能是apt的源设置的不正确
在这里插入图片描述
可以在/etc/apt/source.list中设置中科大的源再尝试上面的操作
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free

备注:如果提示没有找到freetype-config,可以进行此如下操作自行编译稍微低一点的版本,由于 php-fpm 镜像使用的 libfreetype6 版本为 2.9.1-3 ,版本过新会导致 freetype-config 无法正常使用。解决方案
可以选择自行编译低版本的 freetype 2.8.1。
上代码。

RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        wget \
        && wget http://download.savannah.gnu.org/releases/freetype/freetype-2.8.1.tar.gz \
        && tar zxvf freetype-2.8.1.tar.gz \
        && cd freetype-2.8.1/ \
        && ./configure --prefix=/usr/include \
        && make && make install \
        && rm -rf ../freetype-2.8.1
posted on 2020-03-08 16:17  黑夜开发者  阅读(54)  评论(0编辑  收藏  举报