解决了! Docker + PHP7 + GD导致“调用未定义的函数imagecreatefromjpeg()”

尝试使用imagecreatefromjpeg使用此Dockerfile创build图像以生成容器时遇到问题:

 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正确安装(libjpeg太 – 都出现在php -iphpinfo() ),但imagecreatefromjpeg不起作用,我不知道为什么。


我也运行apt install libjpeg-dev libpng-dev libfreetype6-dev尝试〜强制重新安装(或重新configuration),但似乎没有成功(是的,我也重新启动容器)。

 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# 

我已经apt install libgd2-xpm-dev* ,显然它不能解决问题。 ):


我错过了

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

到我的Dockerfile。


全面修改Dockerfile:

 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/