Î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 scriptulconfigurepentru extensiile care depind de biblioteci terțe (ex: FreeType, libjpeg).docker-php-ext-enable— Creează fișierul.ininecesar pentru a activa o extensie compilată manual sau prinpecl.
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.