Создание образа Docker с расширением PHP zip показывает, что предупреждение "вложенное libzip устарело"
У меня есть Dockerfile
с командой сборки следующим образом:
#install some base extensions
RUN apt-get install -y \
zlib1g-dev \
zip \
&& docker-php-ext-install zip
Я получаю это предупреждение от сборки:
ПРЕДУПРЕЖДЕНИЕ. Использование связанного libzip устарело и будет удалено.
configure: ПРЕДУПРЕЖДЕНИЕ. Некоторые функции, такие как шифрование и bzip2, недоступны.
configure: ПРЕДУПРЕЖДЕНИЕ: используйте системную библиотеку, и --with-libzip рекомендуется.
Каков правильный способ установки расширения zip без этих предупреждений?
Мой полный файл Docker выглядит так:
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/
Ответы
Ответ 1
Похоже, PHP больше не связывает libzip. Вам нужно установить его. Вы устанавливаете zlib1g-dev
, но вместо этого устанавливаете libzip-dev
. Это устанавливает zlib1g-dev
в качестве зависимости и позволяет скрипту configure
определить, что libzip
установлен.
Затем вам нужно
docker-php-ext-configure zip --with-libzip
перед выполнением установки с
docker-php-ext-install zip
как показывает последнее предупреждение.
Вкратце: измените соответствующую часть вашего Dockerfile на
#install some base extensions
RUN apt-get install -y \
libzip-dev \
zip \
&& docker-php-ext-configure zip --with-libzip \
&& docker-php-ext-install zip
Я проверил, что это строит как ожидалось.
Ответ 2
configure: ПРЕДУПРЕЖДЕНИЕ: Libzip> = 1.2.0, необходимый для поддержки шифрования