Intervention Image è una popolare libreria PHP per la manipolazione di immagini che mette a disposizione una versione specifica per Laravel. Tuttavia, prima di poterla utilizzare con successo anche in Docker, occorre eseguire l'installazione preliminare delle sue dipendenze.
La documentazione ufficiale mostra come sia semplice integrare intervention/image-laravel
in Laravel pubblicando anche il suo file di configurazione globale.
In Docker c'è un passo ulteriore da compiere: installaare le dipendenze delle estensioni PHP che permettono alla libreria di svolgere il suo compito.
Nel file Dockerfile
vanno quindi prima installate nel container le dipendenze e poi abilitate le necessarie estensioni.
RUN apt-get update && apt-get install -y --no-install-recommends \
git unzip pkg-config \
libonig-dev libicu-dev libzip-dev \
libpng-dev libjpeg62-turbo-dev libwebp-dev \
&& docker-php-ext-configure gd --with-jpeg --with-webp \
&& docker-php-ext-install -j$(nproc) mbstring pdo_mysql intl zip gd bcmath exif pcntl \
&& a2enmod rewrite headers \
&& rm -rf /var/lib/apt/lists/*
Intervention Image per impostazione predefinita fa uso dell'estensione GD. Nel codice di cui sopra abbiamo installato tale estensione abilitando il supporto ai formati JPEG e WebP. Tale operazione sarebbe fallita se nella riga precedente non avessimo installato prima i pacchetti di sistema libjpeg62-turbo-dev
e libwebp-dev
.
Infatti il comando Docker docker-php-ext-install
effettua la compilazione dell'estensione nel container e necessita delle dipendenze richieste a livello di sistema. In altre parole, tale comando non reperisce anche le dipendenze dell'estensione, che devono essere installate prima di invocarlo.
Conclusione
Installare Intervention Image in Laravel con Docker richiede semplicemente un passaggio preliminare per poter utilizzare la libreria con successo.