web-dev-qa-db-ja.com

Dockerにmcryptをインストールする方法

私は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'

インストールする方法はありますか?

6
subharb

php docker imageセクションの公式マニュアルを見てみましょうPHP Core Extensions

たとえば、iconv、mcrypt、およびGd拡張を含むPHP-FPMイメージが必要な場合は、好きなベースイメージを継承して、次のように独自の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

念のため、拡張機能の依存関係を手動でインストールする必要があります。拡張機能でカスタムのconfigure引数が必要な場合は、この例のようにdocker-php-ext-configureスクリプトを使用できます。この場合、docker-php-sourceを手動で実行する必要はありません。これは、configureおよびinstallスクリプトによって処理されるためです。

13
Bukharov Sergey

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
12
thanosasimo