Un environnement local Dockerisé en deux lignes de commande avec ddev
Construire un environnement de développement en local peut être fastidieux. Si l’on souhaite un environnement “natif”, il faudra installer tout le nécessaire en local. L’utilisation de machines virtuelles est pratique, mais gourmand en ressources matérielles. L’alternative à tout cela c’est bien évidemment les conteneurs qui ont été popularisés par Docker.
Néanmoins, tout n’est pas rose. Lorsqu’on travail sur de multiples projets, on peut se retrouver rapidement à copier/coller des configurations Docker Compose à droite et à gauche, ce qui peut ne pas être pratique. De plus, la configuration peut-être légèrement différente que l’on travaille sur Linux, Mac ou Windows ce qui ne facilite pas forcément le partage de configuration.
Mais c’était sans compter DDEV dont l’objectif est de simplifier la configuration des environnements locaux fonctionnant via des conteneurs.
Ddev offre une solution permettant de gérer des environnements locaux de développement entièrement conteneurisés de manière à ce qu’il ne soit pas nécessaire d’installer quoi que se soit sur votre machine (mis à part Docker et Ddev lui-même). Disponible pour Linux, Mac & Windows, il est également capable de fonctionner dans des environnements cloud tels que Gitpod ou Github Codespaces.
Aussi simple que puissant, Ddev vous permettra en quelques lignes de commande d’installer, configurer et lancer tout le nécessaire au bon fonctionnement de votre projet PHP (de type CMS tel que Drupal ou WordPress, mais aussi vos projets Laravel, Symfony ou même CakePHP) ou Python (expérimental). Bien entendu, il ne se contente pas de fournir des images pour votre langage favori, au travers d’un système d’extension, vous aurez la possibilité d’ajouter à votre environnement un service préexistant (comme des CRONtab, de l’Elasticsearch, du Minio, des bases MongoDB ou Redis et même des systèmes de messages comme Beanstalk ou RabbitMQ) ou bien d’ajouter le vôtre.
En plus de toutes ces fonctionnalités, une fois le projet démarré, Ddev fournit une URL vous permettant d’accéder à ce dernier. L’expérience avec Docker, montre que bien souvent, nous autres développeurs avons des difficultés à gérer le mapping des droits entre notre conteneur et notre système de fichier. Là encore, tout est géré à notre place.
Pour ma part, Ddev commence à remplacer petit à petit l’environnement hybride que j’avais l’habitude de mettre en place à savoir un PHP natif installé sur machine et fonctionnement au travers de Symfony CLI qui était couplé avec des conteneurs Docker pour toutes les autres dépendances (base de données, RabbitMQ, gestion des emails…).
Vous n’êtes pas encore convaincu ? Je vous propose un petit test. Prenez 5 minutes pour installer Ddev. Une fois fait, je vous propose de créer le projet de démo de Symfony: symfony new ddev-demo --demo
.
Puis pour configurer notre environnement, nous allons utiliser la commande ddev config
et renseigner les différentes informations demandées:
Il n’y a pas de projet type Symfony, nous nous contentons alors de spécifier le dossier public
et d’indiquer qu’il s’agit d’un projet PHP.
Il ne reste maintenant plus qu’à démarrer notre environnement via la commande ddev start
:
Vous avez maintenant un projet de démo fonctionnel au travers de l’URL https://demo-ddev.ddev.site
Bluffant non ?