PHP 8.1 fpm Alpine缺少退出扩展



我已经设置了一个php服务器从php:8.1.4-fpm-alpine3.14使用这个dockerfile

FROM php:8.1.4-fpm-alpine3.14
RUN apk update
RUN apk add --no-cache git libzip-dev zip unzip php8-exif
RUN docker-php-ext-install pdo pdo_mysql zip exif 
&& curl -sS https://getcomposer.org/installer | php -- 
--install-dir=/usr/local/bin --filename=composer
WORKDIR /var/www/html
COPY . .
RUN chown -R www-data:www-data /var/www/html
RUN composer install

我尝试安装一个软件包spatie/laravel-medialibrary:^10.0.0,得到这个错误

问题1- space/laravel- medilibrary[10.0.0,…][10.3.4] require ext-exif * ->它从你的系统中消失了。安装或启用PHP的exif扩展。

如何修复这个缺失的问题?当我执行php -m

时,我在php模块列表中找不到exif
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zip
zlib
[Zend Modules]

你解决这个问题了吗?我可以看到你正在使用docker-php-ext-install来添加扩展,但你没有启用它,所以做这样的事情(没有在你的测试)

RUN docker-php-ext-install pdo pdo_mysql zip exif 
&& docker-php-ext-enable exif  // <----- see here
&& curl -sS https://getcomposer.org/installer | php -- 
--install-dir=/usr/local/bin --filename=composer

如果您构建dockerfile,然后在容器中再次运行php -m,您将看到它列在那里。然而,当我试图运行composer require spatie/laravel-medialibrary:^10.0.0时,我仍然得到相同的错误,至少在我的情况下。

更新尝试使用--ignore-plarform-reqs参数安装它,所以

composer require "spatie/laravel-medialibrary:^10.0.0" --ignore-platform-reqs

This works for me

最新更新