Solved! Problems with Docker + PHP7 + GD resulting in calling the undefined function imagecreatefromjpeg () "

I am having problems trying to create an image using imagecreatefromjpeg using this Dockerfile to create a container:

 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 was installed correctly (libjpeg too - both appear in php -i and phpinfo() ), but imagecreatefromjpeg doesn't work, and I don't know why.


I also ran apt install libjpeg-dev libpng-dev libfreetype6-dev , trying to force reinstall (or reconfigure), but didn't seem to succeed (yes, I also restarted the container).

 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# 

I tried apt install libgd2-xpm-dev* and apparently this does not solve the problem. ):


I was missing

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

to my Docker file.


Full revised docker file:

 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/ 
+5
source share

Source: https://habr.com/ru/post/1273367/


All Articles