web-dev-qa-db-fra.com

Construction d'une image Docker avec PHP L'extension Zip affiche l'avertissement "libzip intégré est obsolète")

J'ai un Dockerfile avec une commande de construction comme celle-ci:

#install some base extensions
RUN apt-get install -y \
        zlib1g-dev \
        Zip \
  && docker-php-ext-install Zip

J'obtiens cet avertissement de la sortie de build:

AVERTISSEMENT: l'utilisation de libzip fourni est déconseillée et sera supprimée.
configure: AVERTISSEMENT: Certaines fonctionnalités telles que le cryptage et bzip2 ne sont pas disponibles.
configure: AVERTISSEMENT: utilisez la bibliothèque système et --with-libzip est recommandé.

Quelle est la bonne façon d'installer l'extension Zip sans ces avertissements?

Mon Dockerfile complet ressemble à ceci:

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/
12
sakhunzai

Il ressemble à PHP ne regroupe plus libzip . Vous devez l'installer . Vous installez zlib1g-dev, mais installez plutôt libzip-dev. Cela installe zlib1g-dev en tant que dépendance et permet au script configure de détecter que libzip est installé.

Vous devez ensuite

docker-php-ext-configure Zip --with-libzip

avant d'effectuer l'installation avec

docker-php-ext-install Zip

comme l'indique le dernier avertissement.

En bref: changez la partie pertinente de votre Dockerfile en

#install some base extensions
RUN apt-get install -y \
        libzip-dev \
        Zip \
  && docker-php-ext-configure Zip --with-libzip \
  && docker-php-ext-install Zip

J'ai vérifié que cela se construit comme prévu.

43
Just a student