Создание образа 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, необходимый для поддержки шифрования