Как я могу установить расширение pecl, например mcrypt, в веб-контейнере DDEV-Local? - PullRequest
1 голос
/ 06 марта 2020

В PHP 7.2 и выше расширение mcrypt больше не доступно, но мой проект зависит от него. Я знаю, что в проекте не должно быть чего-то такого древнего, как mcrypt, но я ничего не могу сказать по этому поводу. Я знаю, что mcrypt был удален из PHP7 .2 + , но все еще находится в pecl .

Что я могу сделать для поддержки этого проекта php - mcrypt в 7.2 и выше?

1 Ответ

1 голос
/ 06 марта 2020

DDEV-Local поддерживает пользовательские файлы Docker, поэтому вы можете добавить в веб-контейнер практически все, что захотите.

Этот .ddev / web-build / Dockerfile установит расширение mcrypt из pecl. Он использует методы из ссылок в вопросе для сборки php -mcrypt для PHP версии в PHP_VERSION.

Если вы хотите установить другое расширение pecl, вам может потребоваться всего несколько пакетов меньше , но идея та же самая.


# You can copy this Dockerfile.example to Dockerfile to add configuration
# or packages or anything else to your webimage
ARG BASE_IMAGE=drud/ddev-webserver:v1.13.1
FROM $BASE_IMAGE

ENV PHP_VERSION=7.3
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -o Dpkg::Options::="--force-confnew" --no-install-recommends --no-install-suggests gcc make autoconf libc-dev pkg-config php-pear php${PHP_VERSION}-dev libmcrypt-dev
# The "echo" below just forces accepting the "automatic" configuration, the same as hitting <RETURN>
RUN echo | sudo pecl install mcrypt
# Because php7.1-mcrypt is already installed in web container we can just copy its mcrypt.ini
RUN cp /etc/php/7.1/mods-available/mcrypt.ini /etc/php/${PHP_VERSION}/mods-available/ && phpenmod mcrypt
...