web-dev-qa-db-ja.com

Docker Alpine-Gd JPEGサポートを有効にする

PHP-FPMのAlpineイメージを介したGd Jpegサポートの取得に問題があります。これを機能させるために、考えられるあらゆる組み合わせを試しました。以下は、私のDockerfileからの抜粋です。

_FROM php:7.1-fpm-Alpine

RUN apk update \
    && apk upgrade \
    && apk add --no-cache \
        freetype \
        libpng \
        libjpeg-turbo \
        freetype-dev \
        libpng-dev \
        jpeg-dev \
        libjpeg \
        libjpeg-turbo-dev \

RUN docker-php-ext-configure Gd \
        --with-freetype-dir=/usr/lib/ \
        --with-png-dir=/usr/lib/ \
        --with-jpeg-dir=/usr/lib/ \
        --with-Gd

RUN NUMPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) \
    && docker-php-ext-install -j${NUMPROC} Gd
_

コンテナーにシェルしてphp -r 'print_r(Gd_info());'を実行すると、次のようになります。

_Array
(
    [Gd Version] => bundled (2.1.0 compatible)
    [FreeType Support] => 
    [GIF Read Support] => 1
    [GIF Create Support] => 1
    [JPEG Support] => 
    [PNG Support] => 1
    [WBMP Support] => 1
    [XPM Support] => 
    [XBM Support] => 1
    [WebP Support] => 
    [JIS-mapped Japanese Font Support] => 
)
_

[JPEG Support]には空の値があります。 _/usr/lib/_を次のように置き換えてみました:

  • _/usr/_
  • _/usr/include/_

成功しませんでした。問題は、Composerを介してMagento 2をインストールしようとすると、エラーが発生することです。

_Warning: call_user_func() expects parameter 1 to be a valid callback, function 'imagecreatefromjpeg' not found or invalid function name in /var/www/html/vendor/magento/framework/Image/Adapter/Gd2.php on line 65'.
_

誰かがこれを経験しましたか?そうであれば、どうやってそれを解決しましたか?

ありがとうございました

10
maGz

最初のRUNコマンドの最後のスラッシュを削除して確認できますか?

FROM php:7.1-fpm-Alpine

RUN apk update \
    && apk upgrade \
    && apk add --no-cache \
        freetype \
        libpng \
        libjpeg-turbo \
        freetype-dev \
        libpng-dev \
        jpeg-dev \
        libjpeg \
        libjpeg-turbo-dev

RUN docker-php-ext-configure Gd \
        --with-freetype-dir=/usr/lib/ \
        --with-png-dir=/usr/lib/ \
        --with-jpeg-dir=/usr/lib/ \
        --with-Gd

RUN NUMPROC=$(grep -c ^processor /proc/cpuinfo 2>/dev/null || 1) \
    && docker-php-ext-install -j${NUMPROC} Gd

これは、Linux Alpineを使用した私の作業イメージです。

FROM php:7-fpm-Alpine

# Install all dependencies.
RUN apk --no-cache update \
    && apk --no-cache upgrade \
    && apk add --no-cache $PHPIZE_DEPS \
        freetype \
        freetype-dev \
        libjpeg-turbo \
        libjpeg-turbo-dev \
        libpng \
        libpng-dev && \
    docker-php-ext-configure Gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ --with-png-dir=/usr/include/ && \
    docker-php-ext-install -j$(getconf _NPROCESSORS_ONLN) Gd && \
...
7
Renrhaf