端くれプログラマの備忘録 Docker [Docker] docker-php-ext-installとは?

[Docker] docker-php-ext-installとは?

docker-php-ext-install は、PHPの公式Dockerイメージに含まれるユーティリティスクリプトで、PHPの拡張モジュールを簡単にインストールするために使用されます。このスクリプトを使うことで、PHPのソースコードから特定の拡張モジュールをビルドしてインストールするプロセスが簡略化されます。

概要

PHPは、さまざまな機能を提供するために拡張モジュール(Extensions)を使用します。これらのモジュールはデフォルトで組み込まれている場合もあれば、手動でインストールする必要がある場合もあります。docker-php-ext-install は、このインストール作業を効率化するツールです。

php – Official Image | Docker Hub
https://hub.docker.com/_/php

使用方法

  1. Dockerfile 内で使用
    docker-php-ext-install を使ってPHPの拡張をインストールするには、公式PHPイメージをベースにした Dockerfile 内で以下のように記述します。
   FROM php:8.3-cli

   # 必要なライブラリをインストール
   RUN apt-get update && apt-get install -y \
       libpng-dev \
       libjpeg-dev \
       libfreetype6-dev \
       && docker-php-ext-configure gd --with-freetype --with-jpeg \
       && docker-php-ext-install gd
  1. 基本構文
   docker-php-ext-install <拡張モジュール名>

例: mysqli をインストールする場合

   docker-php-ext-install mysqli

主な用途

  • PHP拡張モジュールのインストール
    PHPにはさまざまな拡張機能があり、docker-php-ext-install でそれらを有効化できます。
    例:
  docker-php-ext-install pdo pdo_mysql mysqli
  • 拡張モジュールのカスタマイズ
    一部の拡張モジュールはインストール前に設定が必要です。これには docker-php-ext-configure を使用します。
    例: gd モジュールのインストール
  RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
      && docker-php-ext-install gd

注意点

  1. 依存パッケージのインストールが必要
    一部の拡張モジュール(例: gdintl など)は、ビルド時に必要なシステムライブラリが存在しないとエラーになります。その場合、事前に apt-get などを使って必要なライブラリをインストールする必要があります。 例: intl モジュールのインストール
   RUN apt-get update && apt-get install -y libicu-dev \
       && docker-php-ext-install intl
  1. Docker公式PHPイメージ限定
    docker-php-ext-install はPHPの公式Dockerイメージ専用のスクリプトです。他のカスタムイメージでは利用できない場合があります。
  2. PHPバージョンに依存する拡張
    一部の拡張は、PHPのバージョンによって使用できるかどうかが異なります。PHPのバージョンを確認し、対応する拡張をインストールしてください。

よく使われる拡張例

拡張モジュール機能例
pdo_mysqlMySQLデータベースのPDOサポート
mysqliMySQLデータベースの手動操作サポート
gd画像操作ライブラリ(生成や編集など)
intl国際化機能(日時フォーマット、翻訳など)
zipZIPアーカイブの操作
soapSOAPプロトコルサポート