我已经设置了一个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
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