Как установить Mcrypt на Docker

У меня есть Docker Container с Phalcon3 и php 7. Я пытаюсь установить расширение php Mcrypt без удачи.

Если я сделаю SSH к контейнеру и выполнить:

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

Я получаю следующее:

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

Есть ли способ установить его?

3 ответа

Решение

Давайте посмотрим на официальное руководство по php docker image Раздел PHP Core Extensions

Например, если вы хотите иметь образ PHP-FPM с расширениями iconv, mcrypt и gd, вы можете унаследовать базовый образ, который вам нравится, и написать свой собственный файл Docker следующим образом:

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

Помните, вы должны установить зависимости для своих расширений вручную. Если расширению нужны настраиваемые аргументы конфигурации, вы можете использовать скрипт docker-php-ext-configure, как в этом примере. В этом случае нет необходимости запускать docker-php-source вручную, так как это обрабатывается скриптами configure и install.

Из руководства по PHP:

Это расширение было перемещено в "PECL-репозиторий и больше не связано с PHP начиная с PHP 7.2.0.

Итак, в вашем Dockerfile вы должны:

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

Я добавил код в свой Dockerfile, но я получаю эту ошибку

error: /usr/src/php/ext/mcrypt does not exist
Другие вопросы по тегам