Installare e attivare le estensioni PHP nel Dockerfile

Quando si lavora con PHP in un ambiente Docker, spesso è necessario installare e attivare estensioni aggiuntive per garantire il corretto funzionamento dell'applicazione. In questo articolo vedremo come installare e attivare le estensioni PHP all'interno di un Dockerfile.

1. Utilizzare l'Immagine Ufficiale di PHP

Il modo più semplice per installare estensioni PHP è partire da un'immagine ufficiale di PHP, ad esempio:

FROM php:8.2-cli

2. Installare le Estensioni con docker-php-ext-install

Le estensioni PHP possono essere installate utilizzando il comando docker-php-ext-install. Ad esempio, per installare le estensioni pdo e pdo_mysql, il Dockerfile sarà:

FROM php:8.2-cli

RUN docker-php-ext-install pdo pdo_mysql

3. Installare le Estensioni che Richiedono Librerie di Sistema

Alcune estensioni PHP dipendono da librerie di sistema. Ad esempio, per installare gd, è necessario prima installare le librerie richieste:

FROM php:8.2-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

4. Installare Estensioni PECL

Alcune estensioni PHP sono disponibili solo tramite PECL. Per installarle, bisogna usare pecl install e poi abilitarle con docker-php-ext-enable. Ad esempio, per installare Redis:

FROM php:8.2-cli

RUN pecl install redis && \
    docker-php-ext-enable redis

5. Installare Più Estensioni Contemporaneamente

Per ridurre il numero di layer dell'immagine Docker, è possibile installare più estensioni nello stesso comando:

FROM php:8.2-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 pdo pdo_mysql && \
    pecl install redis && \
    docker-php-ext-enable redis

Conclusione

Installare e attivare le estensioni PHP in un Dockerfile è un'operazione essenziale per configurare un ambiente PHP personalizzato. Utilizzando i comandi docker-php-ext-install e docker-php-ext-enable, è possibile gestire facilmente le estensioni necessarie. Ricordarsi sempre di installare le librerie di sistema richieste prima di compilare le estensioni.

Torna su