首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试为Docker官方镜像中的php-gd添加freetype

尝试为Docker官方镜像中的php-gd添加freetype
EN

Stack Overflow用户
提问于 2018-03-08 22:09:54
回答 3查看 17.8K关注 0票数 18

我正在尝试添加一些功能的PHP GD安装。我使用Docker PHP“官方”版本作为基础(php:7.1.15-fpm-jessie)。

我当前的生产环境使用CentOS,它的GD模块支持FreeType、JPEG和PNG,您可以在phpinfo输出中看到:

代码语言:javascript
复制
GD Support => enabled
GD headers Version => 2.2.5
GD library Version => 2.2.5
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.4.11
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.5.13
WBMP Support => enabled
XPM Support => enabled
libXpm Version => 30411
XBM Support => enabled
WebP Support => enabled

Directive => Local Value => Master Value
gd.jpeg_ignore_warning => 1 => 1

但是这个Docker镜像没有FreeType和JPEG的支持,并且有一个更老的GD版本(参见下面的phpinfo ):

代码语言:javascript
复制
GD Support => enabled
GD Version => bundled (2.1.0 compatible)
GIF Read Support => enabled
GIF Create Support => enabled
PNG Support => enabled
libPNG Version => 1.2.50
WBMP Support => enabled
XBM Support => enabled

Directive => Local Value => Master Value
gd.jpeg_ignore_warning => 1 => 1

我需要重新编译PHP,还是只需要重新编译扩展?图片中使用的是Debian Jessie。

版本(解决方案):

重新编译后,我在这篇文章中找到了最好的解决方案:

solved! Troubles with Docker + PHP7 + GD resulting in "Call to undefined function imagecreatefromjpeg()"

所以我简单地加了一句:

代码语言:javascript
复制
RUN apt-get update && apt-get install libgd3 libgd-dev && rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install -j$(nproc) gd

之后,我的phpinfo开始显示:

代码语言:javascript
复制
GD Support => enabled
GD Version => bundled (2.1.0 compatible)
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.5.2
GIF Read Support => enabled
GIF Create Support => enabled
JPEG Support => enabled
libJPEG Version => 6b
PNG Support => enabled
libPNG Version => 1.2.50
EN

回答 3

Stack Overflow用户

发布于 2018-06-26 19:24:44

将以下代码添加到您的Dockerfile:

代码语言:javascript
复制
RUN apt-get update && apt-get install -y libpng-dev 
RUN apt-get install -y \
    libwebp-dev \
    libjpeg62-turbo-dev \
    libpng-dev libxpm-dev \
    libfreetype6-dev

RUN docker-php-ext-configure gd \
    --with-gd \
    --with-webp-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib-dir \
    --with-xpm-dir \
    --with-freetype-dir \
    --enable-gd-native-ttf

RUN docker-php-ext-install gd

这对我很管用。

票数 19
EN

Stack Overflow用户

发布于 2020-05-29 11:33:01

对于使用php7.3的我,删除--enable-gd-native-ttf

代码语言:javascript
复制
RUN apt-get update && apt-get install -y libpng-dev 
RUN apt-get install -y \
    libwebp-dev \
    libjpeg62-turbo-dev \
    libpng-dev libxpm-dev \
    libfreetype6-dev

RUN docker-php-ext-configure gd \
    --with-gd \
    --with-webp-dir \
    --with-jpeg-dir \
    --with-png-dir \
    --with-zlib-dir \
    --with-xpm-dir \
    --with-freetype-dir

RUN docker-php-ext-install gd
票数 4
EN

Stack Overflow用户

发布于 2021-08-03 23:45:00

在寻找了很多方法来解决这个问题之后,我已经找到了这个设置,并且工作得很完美

代码语言:javascript
复制
FROM php:7.2-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

https://forums.docker.com/t/problems-installing-gd-on-php7-2-with-docker-docker-version-18-09-7-build-2d0083d/78400/2

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49175139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档