Composer avec Docker
Le PHP a souvent l’image d’un langage destiné aux bricoleurs. Cela était peut-être un peu vrai au tout début. Mais avec le temps, il s’équipe d’outils d’industrialisation tel que Composer. C’est un outil de gestion de dépendances écrit en PHP et publié sous licence Open Source. Le dépôt utilisé par défaut pour télécharger les dépendances est celui de Packagist.
Pour l’exécuter, il faut avoir PHP en ligne de commande. Néanmoins, un développeur l’a empaqueté dans un conteneur Docker et est exécuté avec PHP 7.
Composer peut récupérer les dépendances à partir un fichier composer.json
qui décrit les composants nécessaires avec leur version et l’environnement où ils sont nécessaires. Voici un exemple très simple :
{ "require": { "monolog/monolog": "1.0.*" } }
Pour lancer le téléchargement de ces dépendances 1, il faut demander à composer de les installer avec cette commande 2 :
$ docker run --rm -v /$(pwd):/app composer/composer install Loading composer repositories with package information Installing dependencies (including require-dev) - Installing monolog/monolog (1.0.2) Downloading: 100% Writing lock file Generating autoload files
Comme cela avait été fait pour Docker Compose, il est possible de créer un alias 3 pour avoir l’impression que Composer est disponible sur la machine :
alias composer='docker run --rm -ti -v /`pwd`:`pwd` -w /`pwd` composer/composer'
Après un rechargement du bash, il est maintenant possible de gérer les dépendances de vos projets avec cette commande bien plus simple :
$ composer install
Avec cette astuce, il est donc possible d’utiliser le gestionnaire de dépendances Composer sans avoir réellement installé Composer ni PHP 7 !
Laisser un commentaire