La problématique d'une équipe de développement : travailler ensemble
C'est génial, l'équipe grandit. Elle s'agrandit. On peut maintenant être plus nombreux sur certains projets. OK, mais comment on organise ça ? Travailler ensemble, sans se marcher sur les pieds, produire des procédures en laissant de la flexibilité aux équipes... Tel est désormais le quotidien de chaque équipe projet. Nous devons bichonner ces problématiques organisationnelles, nous devons nous écouter, y consacrer de l'énergie. Dans cette situation, lorsqu'un outil résout une situation sans trop d'efforts, il devient impératif de le déployer et de l'imposer. C'est ce que nous avons fait avec Lando.
Lando ?
Lando est une surcouche d'un conteneur Docker. Il facilite la vie de notre équipe de développeurs Drupal. En quelques minutes, vous disposez de votre environnement local et surtout, vous savez que tous les membres de votre équipe travaillent dans les mêmes conditions.
Lando permet :
- De disposer facilement d'un environnement de développement local ;
- De disposer d'un environnement iso à mes collègues, qui travaillent sur le même projet ;
- De gérer facilement des configurations pénibles comme le SSL, les clés SSH, les configurations répétitives ;
En clair, Lando harmonise les relations entre développeurs, qui viennent souvent d'horizons différents, utilisent des configurations logicielles locales variées. Il permet de plus facilement intégrer et dépanner des développeurs. Il permet de travailler sur des projets de plus grande envergure.
Commencer avec Lando
Démarrer Lando
lando start
Cette commande va démarrer le conteneur de l'application. On peut ensuite directement accéder au site via l'URL donnée par Lando (par exemple http://mon-site.lando.site). La première fois, Lando va d'abord construire le conteneur pour le projet.
Eteindre Lando
lando stop
Cette commande éteint l'application.
lando poweroff
Cette commande éteint toutes les applications lando ouvertes.
Outils à utiliser dans Lando :
lando composer Runs composer commands
lando db-export [file] Exports database from a service into a file
lando db-import <file> Imports a dump file into database service
lando drupal Runs drupal console commands
lando drush Runs drush commands
lando mysql Drops into a MySQL shell on a database service
lando php Runs php commands
Pour les projets Drupal nous utilisons et consommons tous nos outils et services habituels dans le conteneur Lando. Nous devons toujours faire précéder la commande que l'on veut exécuter par lando afin d'exécuter la commande dans le conteneur.
Par exemple pour mettre à jour Drupal on fera ces commandes :
lando composer update drupal/core --with-dependencies
lando drush updb
lando drush cr
Informations à propos du conteneur
lando info
Utile pour voir l'URL du site local ou de PhpMyAdmin par exemple.
Accès aux logs d'erreur :
lando logs
Tail logs :
lando logs -s appserver -f
Configuration : Landofile .lando.yml
Le dépôt Git du projet Drupal doit contenir le fichier de configuration de Lando. Ce fichier indique à Lando les services à installer dans le conteneur Docker et éventuellement la version de ces services (Apache, Nginx, Solr, Varnish, PHP, MySQL, Node, PhpMyAdmin, etc.) Si la configuration de Lando change (par exemple si on veut modifier la version de PHP), il faut alors reconstruire le conteneur avec la commande :
lando rebuild -y
Exemple d'installation d'un site
On clone le dépôt du projet lesiteweb.com en local et on se place dans le répertoire du projet :
git clone bluedrop@gitea.bluedrop.club:bluedrop/lesiteweb.git
cd lesiteweb
git checkout prod (ou autre)
On ajoute un fichier settings.php pour le site :
cp sites/settings-lando.php sites/default/settings.php
On récupère la base de données à partir d'un dump sur le serveur :
scp lesiteweb@bluedrop-www.bluedrop.club:~/database.sql.gz
On démarre Lando, Lando va automatiquement construire le conteneur :
lando start
On installe les dépendances de Drupal :
lando composer install
On importe la base de données :
lando db-import database.sql.gz
On peut maintenant ouvrir le site localement dans le navigateur: https://lesiteweb.lndo.site
On peut par exemple compiler les assets avec Webpack comme ceci :
cd themes/bluedrop/assets
lando npm i
lando npm run build
Ressources :
Lisez la documentation Lando.
Lisez la documentation Docker et un post sur son installation.
Lisez la documentation de Docker Compose.
Pratique : Installer un multi-sites Drupal 9 dans Lando.