tutorial ext php docker gd php-gd

ext - Problemas con Docker+PHP7+GD que resultan en "Llamar a función no definida imagecreatefromjpeg()"



install php gd docker (1)

Para PHP 5.6

FROM php:5.6-apache RUN apt-get update && apt-get install -y / libfreetype6-dev libjpeg62-turbo-dev / libgd-dev libpng12-dev RUN docker-php-ext-configure gd / --with-freetype-dir=/usr/include/ / --with-jpeg-dir=/usr/include/ RUN docker-php-ext-install gd

Si aún no funciona, puede volver a instalar el contenedor.

docker rm <container id> docker-compose build --pull docker-compose up

Tengo problemas al intentar crear una imagen usando imagecreatefromjpeg usando este Dockerfile para generar el contenedor:

FROM php:7.1-apache RUN apt-get update && / apt-get install -y -qq git / libjpeg62-turbo-dev / apt-transport-https / libfreetype6-dev / libmcrypt-dev / libpng12-dev / libssl-dev / zip unzip / nodejs / npm / wget / vim RUN pecl install redis && docker-php-ext-enable redis RUN docker-php-ext-install -j$(nproc) iconv mcrypt zip pdo pdo_mysql gd bcmath COPY ./containers/yii.conf /etc/apache2/sites-available/000-default.conf RUN for mod in rewrite headers; do a2enmod $mod; done && service apache2 restart WORKDIR /var/www/html/

GD se instaló correctamente (también libjpeg; ambos aparecen en php -i y phpinfo() ), pero imagecreatefromjpeg no funciona y no sé por qué.

También ejecuté apt install libjpeg-dev libpng-dev libfreetype6-dev intentando forzar la reinstalación (o la reconfiguración), pero parece que no se realizó correctamente (sí, también reinicio el contenedor).

root@e8db647c96c4:/var/www/html# php -i | grep -i GD /usr/local/etc/php/conf.d/docker-php-ext-gd.ini, gd GD Support => enabled GD Version => bundled (2.1.0 compatible) gd.jpeg_ignore_warning => 1 => 1 root@e8db647c96c4:/var/www/html#

root@e8db647c96c4:/var/www/html# docker-php-ext-enable gd warning: gd (gd.so) is already loaded! root@e8db647c96c4:/var/www/html#

He intentado apt install libgd2-xpm-dev* y aparentemente no resuelve el problema.

Resuelto

Me faltaba poner

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ RUN docker-php-ext-install -j$(nproc) gd

en mi Dockerfile.

Dockerfile completo revisado:

FROM php:7.1-apache RUN apt-get update && / apt-get install -y -qq git / libjpeg62-turbo-dev / apt-transport-https / libfreetype6-dev / libmcrypt-dev / libpng12-dev / libssl-dev / zip unzip / nodejs / npm / wget / vim RUN pecl install redis && docker-php-ext-enable redis RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ RUN docker-php-ext-install -j$(nproc) iconv mcrypt zip pdo pdo_mysql gd bcmath COPY ./containers/yii.conf /etc/apache2/sites-available/000-default.conf RUN for mod in rewrite headers; do a2enmod $mod; done && service apache2 restart WORKDIR /var/www/html/