如何在Docker上安装mcrypt

时间:2017-11-08 13:47:29

标签: docker mcrypt php-extension

我有一个带有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'

有没有办法安装它?

3 个答案:

答案 0 :(得分:9)

让我们看一下php docker image 部分PHP核心扩展的官方手册

  

例如,如果您想要一个带有iconv,mcrypt的PHP-FPM图像   和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脚本。没有必要   在这种情况下手动运行docker-php-source,因为这是由处理   配置和安装脚本。

答案 1 :(得分:7)

我将代码添加到了Dockerfile中,但是出现了这个错误

error: /usr/src/php/ext/mcrypt does not exist

答案 2 :(得分:5)

摘自PHP手册:

此扩展已移至»PECL存储库,并且从PHP 7.2.0开始不再与PHP捆绑在一起。

因此,在您的Dockerfile中,您必须:

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