我有一个 Dockerfile
带有这样的构建命令:
#install some base extensions
RUN apt-get install -y \
zlib1g-dev \
zip \
&& docker-php-ext-install zip
我从构建输出中收到此警告:
WARNING: Use of bundled libzip is deprecated and will be removed.
configure: WARNING: Some features such as encryption and bzip2 are not available.
configure: WARNING: Use system library and --with-libzip is recommended.
在没有这些警告的情况下安装 zip 扩展的正确方法是什么?
我的完整 Dockerfile 看起来像:
FROM php:7.2-apache
RUN apt-get clean
RUN apt-get update
#install some basic tools
RUN apt-get install -y \
git \
tree \
vim \
wget \
subversion
#install some base extensions
RUN apt-get install -y \
zlib1g-dev \
zip \
&& docker-php-ext-install zip
#setup composer
RUN curl -sS https://getcomposer.org/installer | php \
&& mv composer.phar /usr/local/bin/ \
&& ln -s /usr/local/bin/composer.phar /usr/local/bin/composer
WORKDIR /var/www/
最佳答案
它 looks like PHP 不再捆绑 libzip .您需要 install it .您安装 zlib1g-dev
,而是安装 libzip-dev
。这会将 zlib1g-dev
安装为依赖项,并允许 configure
脚本检测是否安装了 libzip
。
对于 PHP < 7.3,您需要
docker-php-ext-configure zip --with-libzip
在执行安装之前
docker-php-ext-install zip
如最后的警告所示。
简而言之:将 Dockerfile 的相关部分更改为
适用于 PHP < 7.3
#install some base extensions
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-configure zip --with-libzip \
&& docker-php-ext-install zip
对于 PHP >= 7.3
#install some base extensions
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-install zip
我已经验证了它可以按预期构建。
如果您不使用 Docker PHP base image ,事情可能会容易得多。例如,对于 Alpine,以下 Dockerfile 将为您提供安装了 zip 扩展的 PHP 7。
FROM alpine:latest
RUN apk update && apk upgrade
RUN apk add php7 php7-zip composer
关于php - 使用 PHP zip 扩展构建的 Docker 镜像显示 "bundled libzip is deprecated"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48700453/