我有一个带有Phalcon3和php 7的Docker容器。我正在尝试安装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'
有没有办法安装它?
来自 PHP 手册:
此扩展已移至 » PECL 存储库,并且从 PHP 7.4.0 开始不再与 PHP 捆绑在一起。
因此,在您的 Dockerfile 中,您必须:
RUN apt-get install libmcrypt-dev
RUN pecl install mcrypt-1.0.4 && docker-php-ext-enable mcrypt
让我们看看 php docker 镜像的官方手册 部分 PHP 核心扩展
例如,如果你想有一个带有iconv的PHP-FPM图像,mcrypt 和 gd 扩展,您可以继承您喜欢的基础映像,并且 像这样编写自己的 Dockerfile:
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,您必须手动安装扩展的依赖项。如果 扩展需要自定义配置参数,您可以使用 docker-php-ext-configure script,就像这个例子一样。没有必要 在这种情况下,手动运行 docker-php-source,因为这是由 配置和安装脚本。