无法在运行于Docker中的PHP8容器中启用带有JPEG支持的GD

9
尝试了多种方法,但在运行于 Docker 中的 PHP8 容器中无法启用 JPEG 支持的 GD。以下是我的 Docker 文件代码片段:
FROM php:8.0.10-apache

RUN apt-get -y update && apt-get -y install \
apt-utils \
vim \
rsync \
curl \
openssl \
openssh-server \
mariadb-client \
git \
zlib1g-dev \
libicu-dev \
libfreetype6-dev \
libjpeg62-turbo-dev \
libzip-dev \
libpng-dev \
g++ \
zip \
unzip \
gnupg \
gnupg2 \
unixodbc-dev

RUN docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg
RUN docker-php-ext-install gd 

JPEG Support is missing

你会发现JPEG支持缺失了。我错过了什么?谢谢!


这个回答解决了你的问题吗?Docker Alpine - 启用 GD JPEG 支持 - madflow
很遗憾,我知道在PHP7.3中启用支持JPEG的GD的方法已经改变了。 - Aidas
2个回答

5

我使用的是 Nginx (不是像你一样的 Apache),但是在使用 GD 时遇到了类似的问题。我通过以下几行代码使得 GD 能够处理 jpg、png 和 webp

FROM php:8.0-fpm-alpine

# Install dependencies for GD and install GD with support for jpeg, png webp and freetype
# Info about installing GD in PHP https://www.php.net/manual/en/image.installation.php
RUN apk add --no-cache \
        libjpeg-turbo-dev \
        libpng-dev \
        libwebp-dev \
        freetype-dev

# As of PHP 7.4 we don't need to add --with-png
RUN docker-php-ext-configure gd --with-jpeg --with-webp --with-freetype
RUN docker-php-ext-install gd

看到您的RUN apt-get语句后,我注意到您正在使用另一个libjpeg62-turbo-dev \库:请确认该版本是否正确。或者尝试更改名称为libjpeg-turbo-dev \(名称中不含62)。


2
FROM php:8.1-fpm

RUN apt-get update && apt-get install -y \
    libjpeg-dev \
    libjpeg62-turbo-dev \
    libpng-dev 

RUN docker-php-ext-configure gd --with-freetype --with-jpeg 

RUN docker-php-ext-install -j$(nproc) gd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接