我在使用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支持]的值为空。我已经尝试用以下内容替换/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'.
有人经历过这种情况吗?如果是,你们是如何解决的呢?
谢谢
libjpeg-turbo-dev
后面加上一个\
这么简单?如果没有这个反斜杠,在相同的Dockerfile
中,我看起来仍然支持JPEG。 - Andy Shinn