web-dev-qa-db-fra.com

Comment installer mcrypt sur Docker

J'ai un Docker Container avec Phalcon3 et php 7. J'essaie d'installer l'extension php Mcrypt sans chance.

Si je fais ssh dans le conteneur, et exécute:

apt-get update
apt-get install php7.0-mcrypt  

J'obtiens ce qui suit:

E: Unable to locate package php7.0-mcrypt
E: Couldn't find any package by regex 'php7.0-mcrypt'

Existe-t-il un moyen de l'installer?

6
subharb

Regardons le manuel officiel pour image docker php Section PHP Extensions de base

Par exemple, si vous voulez avoir une image PHP-FPM avec les extensions iconv, mcrypt et Gd, vous pouvez hériter de l'image de base que vous aimez et écrire votre propre Dockerfile comme ceci:

FROM php:7.0-fpm
RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure Gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) Gd

Rember, vous devez installer les dépendances pour vos extensions manuellement. Si une extension a besoin d'arguments de configuration personnalisés, vous pouvez utiliser le script docker-php-ext-configure comme cet exemple. Il n'est pas nécessaire d'exécuter docker-php-source manuellement dans ce cas, car cela est géré par les scripts de configuration et d'installation.

13
Bukharov Sergey

Depuis PHP manual:

Cette extension a été déplacée vers le "référentiel PECL et n'est plus fournie avec PHP à partir de PHP 7.2.0.

Donc, dans votre Dockerfile, vous devez:

RUN apt-get install libmcrypt-dev
RUN pecl install mcrypt-1.0.1 && docker-php-ext-enable mcrypt
12
thanosasimo