web-dev-qa-db-fra.com

Docker Alpine - Activer le support Gd JPEG

Je rencontre un problème pour obtenir le support Gd Jpeg via l'image Alpine pour PHP-FPM. J'ai essayé toutes les combinaisons auxquelles je peux penser pour que cela fonctionne. Voici un extrait de mon 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

Lorsque je Shell dans le conteneur et que j'exécute php -r 'print_r(Gd_info());', j'obtiens ce qui suit:

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] => 
)

[Prise en charge JPEG] a une valeur vide. J'ai essayé de remplacer /usr/lib/ Par:

  • /usr/
  • /usr/include/

sans succès. Le problème est que lorsque j'essaie d'installer Magento 2 via Composer j'obtiens l'erreur:

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'.

Quelqu'un a-t-il vécu cela, et si oui, comment l'avez-vous résolu?

Je vous remercie

10
maGz

pourriez-vous essayer de supprimer la dernière barre oblique de votre première commande RUN et vérifier?

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

Voici mon image de travail en utilisant 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