Un kit de dev LAMP efficace en 15 minutes

Si comme moi vous travaillez sur de nombreux sites, vous avez surement rêvé de pouvoir, a partir de vos sources, lancer le bon serveur de dev sans avoir à faire de manipulations techniques à faire…
Voici un tuto pour vous permettre d’utiliser docker pour vos kit de dev de façon très simple, et productive.

Pré-requis :

  • Un OS linux installé (soit natif, soit en VM, soit via WSL2).
  • Docker installé

JSDock : Le principe

JSDock est une application en go permettant d’attacher un profil de serveur “de dev” à un répertoire de code source. Une fois ce lien configuré, il suffit de vous positionner dans le dossier de vos sources et lancer jsdock.

L’application en go va se charger de monter vos sources au bon endroit dans le serveur de dev, mais aussi configurer le réseau, gérer d’éventuels conflit de ports…

Installer JSDock

L’installation est très simple, il suffit de suivre les étapes suivantes depuis votre instance linux :

Les étapes sont décrites dans la documentation sur github.

Création d’un environnement PHP, Apache, Mysql

C’est ici que la magie débute. Pour lancer un serveur, il suffit de placer un fichier de description en JSON ou YAML dans le dossier ‘jsdock’ de votre home (~/jsdock).

La configuration est décrite sur le github. Cependant, pour débuter vite et simplement, vous pouvez commencer par récupérer les fichiers d’exemples du github de samples. Pour ce tuto, nous allons utiliser un PHP 7.4 et un serveur MySQL.

Il suffit donc de copier dans votre dossier ~/jsdock les fichiers :

Config PHP : https://raw.githubusercontent.com/tellaw/jsdock-samples/main/jsdock-configs/php7.4.json

Config MySQL : https://raw.githubusercontent.com/tellaw/jsdock-samples/main/jsdock-configs/mysql.json

à ce stade, vous pouvez depuis n’importe quel dossier commencer à utiliser le serveur php, avec la commande :

Et voila, le serveur web se lance en injectant le dossier courant à l’emplacement des sources de votre serveur web.

A ce stade, votre serveur doit répondre via un navigateur : http://127.0.0.1

Explication :

Positionnez-vous dans le dossier contenant les sources de votre projet.

Attachez un profil de serveur de dev à ce dossier

Lancez jsdock. Par défaut, il va essayer de lancer le serveur web.

Adapter le serveur à mes applications (wordpress, ezpublish, symfony, ezplatform)

Très bien, le serveur démarre, mais Apache est configuré par défaut… Ce n’est pas satisfaisant pour exécuter une application type wordpress, ezpublish, symfony.

Pour cela, JSDock propose une solution très simple, dans le profil, vous pouvez décrire des fichiers de configurations contextuels.

Effectivement, JSDock est capable de se baser sur une des conditions suivantes pour décider s’il doit injecter un fichier (ou un dossier) :

  • Vérification de la présence d’un fichier dans vos sources.
  • Vérification de la présence d’un dossier dans vos sources.
  • Vérification d’un texte dans un fichier présent dans vos sources.

Vous trouverez sur le github un exemple de configuration pour les applications les plus utilisées :

  • WordPress
  • Symfony 4
  • Symfony 5 et supérieur.
  • EzPublish

Exemple de configuration :

Importer un dump, contacter le serveur MySQL

Lancer le serveur MySQL si vous n’en avez aucun de disponible. Pour cela très simple

Le parametre mysql va etre reconnu par JSDock comme étant un profil disponible sur la machine. L’action par défaut est start, il va donc se lancer.

Pour vous connecter au serveur, si vous avez utiliser le profil d’exemple, il suffit d’utiliser :

  • Host : 127.0.0.1 : 3306
  • login : root
  • mdp : root

C’est un serveur de dev, non sécurisé (pas de HTTPS, mot de passe… très très décoratif…).

Pour contacter le serveur MySQL depuis votre serveur Apache de dev, il suffit d’utiliser l’alias déclaré dans le profil du serveur MySQL :

Dans mon fichier d’exemple :

Il suffit donc depuis les applications PHP d’utiliser les parametres suivants :

  • Host : devMySQL : 3306
  • login : root
  • mdp : root

Voila, vous avez à présent un environnement LAMP, très simple à lancer (il suffit de se placer dans vos sources, et lancer ‘jsdock’), qui va se charger pour vous des configurations compèxes.

Enfin, lorsque vous avez terminé, vous pouvez stopper vos serveurs avec la commande :

Vous voyez que JSDock va comprendre que l’absence de profil dans la ligne de commande indique que vous utilisez le profil du dossier courant.

Alors que lorsque vous spécifiez un profil (mysql), il va ignorer les informations du dossier courant pour executer votre demande.

Bon dev.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.