PHP-GD Bibliotheken in Docker Umgebungen
Ich verwende für die Entwicklung einer PHP Anwendung Docker Container auf Basis von Apache/PHP Standardcontainer.
Im Prinzip funktioniert das auch super für die Entwicklung. Leider scheint es Probleme mit der Bibliothek gd zu geben. Obwohl diese installiert ist funktioniert sie nicht mit Bilder vom Typ jpg (Es könnte auch andere Bildtypen betreffen aber da ist es mir noch nicht aufgefallen). Da ich beim programmieren der Anwendung immer auf die vorhandenen Bilder zurückgreife ist das bisher nicht aufgefallen. Jetzt musste ich eine neue Komponente installieren welche Bilder manipuliert. Beim Testen habe ich festgestellt das diese nicht wie gewünscht arbeitet.
In den tiefen der Logs konnte ich folgende Zeile finden.
Call to undefined function imagecreatefromjpeg()
Die klassischen Antworten nach Google lauten immer:
sudo apt-get install php7.x-gd
Aber die habe ich doch in meinem Docker Container installiert :-(
RUN docker-php-ext-install pdo pdo_mysql mysqli gd
Es scheint aber so zu sein das die Bibliothek für den Docker Container eine spezielle Massage braucht wenn man auch die JPG Bilder mit bearbeiten möchte (Wahrscheinlich muss man für weitere Bildtypen die Parameter im ext-configure Befehl erweitern.
sudo docker exec -it modified-docker-container_web_1 /bin/bash
apt-get update && apt-get install -y zlib1g-dev libpng-dev libjpeg-dev
docker-php-ext-configure gd --with-jpeg-dir
docker-php-ext-install gd
Dann verschwindet die Fehlermeldung und noch wichtiger die gewünschte Komponente funktioniert.