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

gcmastyq  于 2022-11-22  发布在  Docker
关注(0)|答案(2)|浏览(248)

尝试了很多方法,但仍然无法在Docker中运行的PHP 8容器中启用GD的JPEG支持。以下是我的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支持是失踪。我在这里失踪了什么?谢谢!

axr492tv

axr492tv1#

我使用的是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语句时,我注意到您正在使用另一个libjpeg库libjpeg62-turbo-dev \。您可以检查这是否是正确的版本吗?和/或尝试将名称更改为libjpeg-turbo-dev \名称中没有62)。

ljsrvy3e

ljsrvy3e2#

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

相关问题