2016-07-19 12 views
1

を無効にするために、私はPHPのAPIに取り組んでいると私はなど、私のPHP-FPM画像内の未使用のPHPモジュールにを無効にしたい「PDO、sqlite3の..」。ドッカー - どのようにPHPのEXT /モジュール

私はドッカーの初心者です。未使用のPHPモジュールを無効にするためのベストプラクティスでない場合は、docker-php-ext-enableに類似するものがあるかどうかを知りたいと思います。

+0

'php.ini'ファイルはどうですか? – JustOnUnderMillions

+0

https://hub.docker.com/_/php/ – JustOnUnderMillions

+0

私は/ usr/local/etc/phpにカスタムphp.iniファイルを持っています。何をお勧めしますか?私は上記のリンクに役立つものは何も見つかりません。phpにはいくつかのデフォルトモジュールが付属しており、それらのいくつかを無効にしたいと思います。 –

答えて

0

はい、可能です。例えばhttps://hub.docker.com/_/php/

から撮影

あなたがiconvmcryptgd拡張子を持つPHP-FPMイメージを持つようにしたい場合は、あなたが好きなベースイメージを継承し、独自のDockerfileなどを書くことができますこの:

FROM php:7.0-fpm 
RUN apt-get update && apt-get install -y \ 
     libfreetype6-dev \ 
     libjpeg62-turbo-dev \ 
     libmcrypt-dev \ 
     libpng12-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スクリプトを使用できます。

+0

これをインストールした後で、無効化またはアンインストールする方法はありますか? –

1

最後に、私は重要な点を発見しました。

ドッカーのPHPコンテナの中には、登録されているすべてのモジュールが、以下のパスの設定ファイルによって保持されています。

docker exec -it php_container_name bash 

あなたはphp -mですべて対応モジュールを一覧表示することができます:

そして、そのフォルダにcd、あなたは関連する設定ファイルを見ることができる容器に

/usr/local/etc/php/conf.d/*.ini 

bash

cd /usr/local/etc/php/conf.d/ 
ls 

# output 
docker-php-ext-mcrypt.ini docker-php-ext-mysqli.ini  
docker-php-ext-opcache.ini opcache-recommended.ini 
docker-php-ext-zip.ini 

一部の内線を無効にするにはensionモジュールは、disabledディレクトリを作成し、例えば、その中にその.iniファイルを移動:

mkdir disalbled 
mv docker-php-ext-opcache.ini disabled 
mv opcache-recommended.ini 

最後に、プレス Ctrl+Dは、コンテナを終了し、その後、変更を動作させるために、コンテナを再起動します。

docker restart php_container_name 

あなたは、コンテナに入ると、関連する拡張機能がなくなっている見ることphp -mを実行することができます。

+0

mkdir disalbledというタイプミスがあります。編集には少なくとも10文字の編集が必要なので、変更できません。 –