Installer des extensions PHP facilement dans une image Docker
Si vous avez déjà construit des images Docker pour des applications ou projet PHP, vous avez certainement utilisé l’outil docker-php-ext-install
. Ce dernier permet d’installer et configurer simplement des extensions PHP qui seront disponibles dans le conteneur. Néanmoins, cet outil se limite malheureusement aux extensions officielles fournies avec le langage.
Pour résoudre ce problème et permettre d’installer de nombreuses extensions PHP dans un conteneur Docker, il existe un outil disponible librement sur Github: mlocati/docker-php-extension-installer
. Ce dernier met à disposition un script nommé install-php-extensions
qui vous permettra d’installer et de configurer des extensions PHP au sein de votre image. À la différence du script officiel, il ne se limite pas aux seules extensions fournies directement avec PHP puisqu’il couvre un très large panel d’extensions parmi lesquelles: amqp
, cassandra
, ioncube_loader
, jsonpath
, newrelic
, rdkafka
, xdebug
et bien d’autres encore.
Mais il permet d’aller encore plus loin en installer également les dépendances nécessaires à l’installation des extensions. Il installera par exemple la bibliothèque rabbitmq-c
nécessaire au bon fonctionnement de l’extension amqp
permettant entre autres de communiquer avec RabbitMQ.
Fonctionnant avec les images basées sur Debian et Alpine, vous aurez la possibilité d’installer les extensions pour les versions de 7.1 à 8.4 de PHP, de quoi couvrir un grand nombre de besoins et cas d’utilisation.
Et pour finir, voici un exemple d’utilisation:
Si vous êtes passé à côté de cet outil et que vous utilisez encore une combinaison des utilitaires officiels et/ou pecl
, je ne peux que vous encourager à tester cet outil.