web-dev-qa-db-ja.com

Docker公式イメージのphp-Gdにfreetypeを追加しようとしています

PHP Gdインストールにいくつかの機能を追加しようとしています。DockerPHP "公式"リリースをベースとして使用しています(php:7.1.15- fpm-jessie)。

現在の本番環境ではCentOSを使用しています。Gdモジュールには、phpinfoの出力からわかるように、FreeType、JPEG、PNGのサポートが付属しています。

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を参照)。

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を使用しています。

エディション(ソリューション):

再コンパイルした後、私はこの投稿で最良の解決策を見つけました:

解決!Docker + PHP7 + Gdの問題により、「未定義の関数imagecreatefromjpeg()が呼び出されます」

だから私は単に追加しました:

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が表示を開始します。

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
12
otaviofcs

これをDockerfileに追加します。

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

わたしにはできる。

10
Dennis Schaffer