docker-php-ext-install și docker-php-ext-enable (Extensii în Docker) în PHP

Sistem și configurare Docker Official PHP Images

Comenzile oficiale din imaginile Docker de PHP pentru compilarea și activarea extensiilor native (pdo_mysql, gd, zip, intl, bcmath) și configurarea cu docker-php-ext-configure.

Sintaxă
docker-php-ext-install pdo_mysql gd zip bcmath intl

În imaginile oficiale de Docker pentru PHP (disponibile pe Docker Hub: php:8.3-fpm, php:8.3-cli), dezvoltatorii beneficiază de trei scripturi de asistență speciale create de echipa oficială Docker pentru a simplifica compilarea și activarea extensiilor fără bătăi de cap:

  • docker-php-ext-install — Compilează și instalează extensiile incluse în codul sursă oficial al PHP.
  • docker-php-ext-configure — Transmite parametri de configurare (flags de compilare) către scriptul configure pentru extensiile care depind de biblioteci terțe (ex: FreeType, libjpeg).
  • docker-php-ext-enable — Creează fișierul .ini necesar pentru a activa o extensie compilată manual sau prin pecl.
Dockerfile complet de producție cu extensii uzuale
FROM php:8.3-fpm

# 1. Instalăm dependențele de sistem (bibliotecile C de care depind extensiile)
RUN apt-get update && apt-get install -y \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    libzip-dev \
    libicu-dev \
    zip \
    unzip \
    && rm -rf /var/lib/apt/lists/*

# 2. Configurăm opțiunile pentru GD (suport FreeType pentru fonturi și JPEG)
RUN docker-php-ext-configure gd --with-freetype --with-jpeg

# 3. Compilăm și instalăm extensiile oficiale printr-o singură comandă
RUN docker-php-ext-install -j$(nproc) \
    pdo_mysql \
    gd \
    zip \
    intl \
    bcmath \
    opcache

# 4. Instalăm și activăm extensii din PECL (care nu sunt incluse în core)
RUN pecl install redis \
    && docker-php-ext-enable redis

De ce este docker-php-ext-install superior compilării manuale

Scriptul docker-php-ext-install curăță automat fișierele intermediare .o (object files) și codul sursă necompilat după finalizare, păstrând dimensiunea imaginii Docker cât mai redusă și optimizată pentru mediile cloud și CI/CD.