J'ai parlé de Composer la semaine passé, mais désormais est venu le temps d'introduire son bon ami Docker !
Saviez-vous qu'il est possible d'utiliser Composer à l'intérieur de Docker ? Autrement dit, il est possible de gérer facilement les dépendances d'un projet php au sein d'un conteneur Docker. Cela permet d'éviter de devoir faire une installation locale de Composer, d'installer Php dans son ordinateur et de vivre le rêve de tout informaticien qui se respecte, c'est-à-dire pouvoir utiliser aisément dans son ordinateur plusieurs versions différentes de Composer !
La classe n'est-ce pas ?
Vous vous demandez sûrement comment accomplir un tel exploit. Eh bien sachez qu'il existe déjà des images publiques de Docker.
C'est simple comme ça : docker pull composer
Vous pouvez aussi modifier un de vos dockerfile qui traîne dans la commode et lui redonner un peu de zeste en utilisant la commande suivante :
COPY --from=composer/composer:latest-bin /composer /usr/bin/composer
Cette commande installe le fichier binaire exécutable de Composer.
- Elle récupère à l'intérieur de l'image dans le répertoire /composer le fichier binaire exécutable
- Puis, copie dans le répertoire /usr/bin/composer le fichier binaire exécutable.
- Le placer dans ce répertoire rend composer accessible globalement dans le conteneur.
Il existe aussi plusieurs images Docker disponible dans des dépôts publiques. Voici une petite liste bien chouette publiée sur Github.
Cependant, certaines images Docker basée sur Composer ne sont pas créées pour être utilisées en production ; elles sont plutôt légères et créées pour expérimenter avec Composer. En effet, ces images n'ont pas créées avec toutes les versions de Php et n'ont pas tous les extensions de Php nécessaires installées.
Enfin, en utilisant Composer de cette façon, vous pourrez mettre à jour les librairies d'un projet Php dans votre environnement local, puis, une fois la commande exécutée, détruire le conteneur !
docker run --rm -v $(pwd):/app composer install
- rm : effacer le conteneur après l'exécution de la commande
- -v $(pwd):/app : monter un volume dans le dossier du projet local
- composer install : installer à partir de la version de php dans le conteneur les librairies spécifiées dans le fichier composer.json.
Enfin, si vous étiez échaudé à l'idée d'installer Php dans votre environnement local ou de gérer les dépendances, eh bien vous avez une excuse en moins de plonger dans le grand bain de la phpsphère. Saviez-vous que 75 % des sites utilisent Php dans leur back-end ?
Références
Commentaires2
Avis
Super Nico, toujours un plaisir de lire tes trouvailles,
mais je t’avouerais que je suis un peu perdu. Sur Docker, il existe aussi Docker Compose sans être une image pour autant. Peut-être faire la distinction :) .
conseil
L’article est clair et bien rythmé, ce qui rend le sujet accessible, même pour moi qui n'est pas familière avec Docker. Un petit exemple concret d’un workflow complet, comme l’installation, pourrait aussi être un bon complément.