Déployer facilement et automatiquement vos VMs docker grâce à Lando
Personnellement, la configuration de machine Docker n’est pas ma première passion… Heureusement, un ami (Merci Oli), m’a conseillé de tester Lando.
Pour vous résumer, Lando vous permet d’automatiser et de grandement faciliter la mise en place de vm docker par le simple fait de se baser sur des ‘recipes’ (comprenez des recettes qui contiennent la liste de prérequis nécessaire) disponible afin de n’avoir qu'à passer les quelques paramètre nécessaire pour que ce nouvel environnement corresponde à votre envie!
En bonus, vous pouvez directement y intégrer vos scripts.
Voyons comment faire.
Installation
Installer Docker sur le WSL
Comme je vous le disais, nous allons rester un maximum dans l’environnement unix. Pour ce faire, nous allons utiliser docker sous WSL.
Lors de mes premiers tests, j’installais le Docker CLI moi même avant d’installer Lando. J’ai découvert plus tard que Lando installait Docker si il ne l’était pas déjà. Et personnellement je préfère cette possibilité car Lando n’est pas (encore?) compatible avec les dernières versions de docker.
Mais si vous souhaitez quand même installer Docker, vous pouvez suivre la documentation officielle dont voici le résumé:
curl -fsSL https://get.docker.com -o install-docker.sh
sudo sh install-docker.sh
Installer Lando
Une fois fait, nous pouvons installer Lando, la aussi en suivant la documentation que je vous résume ici:
wget https://files.lando.dev/installer/lando-x64-stable.deb
sudo dpkg -i lando-x64-stable.deb
rm lando-x64-stable.deb
Update 17-05-2024: La méthode d’installation à été simplifiée
/bin/bash -c "$(curl -fsSL https://get.lando.dev/setup-lando.sh)"
Votre installation est prête !
Commandes à connaître
Pour avoir une vue des différentes commandes possible, il vous suffit d’executer la commande
lando
Mais je vous ai tout de même listé les plus importante:
lando start
Permet de démarrer le projet et les containers qui lui sont liés.
Si le projet n'a jamais été lancé, il va également réaliser un build du projet.
lando rebuild --y
Si vous modifiez votre fichier lando.yml, vous devrez rebuild votre projet pour que les modifications soient prises en compte.
lando destroy
Comme vous l’aurez deviné, celà permet de détruire le projet au niveau de Lando donc: les containers mais pas vos fichiers.
lando info
Vous donne différentes informations concernant le projet et notamment les informations d’accès aux bases de données.
lando ssh
Permet d’accéder à un terminal interne à votre projet.
lando ssh -c "ma_commande"
Permet d'exécuter une commande sans rentrer dans le terminal
lando php …
Permet d'exécuter une commande php depuis la racine du projet
lando composer …
Permet d'utiliser composer facilement mais sous condition que composer fasse partie de votre recipe.
HelloWorld
La documentation nous propose de créer un petit projet en utilisant la commande “lando init” suivit d’une série de paramètres.
Perso je trouve cette méthode contraignante surtout qu’au final, elle ne fait que de créer le fichier “.lando.yml”. Je préfère donc directement passer à l'écriture du fichier en question.
Nous allons donc créer un dossier “helloworld” dans lequel nous allons créer le fichier ".lando.yml" suivant:
name: hello-lando
recipe: lamp
config:
webroot: .
Déplacez vous dans ce dossier et exécutez la commande
lando start
On le laisse travailler jusqu'à obtenir le petit écran de status.
Bravo, votre lando a passé tous les tests et est désormais accessible !
En conclusion
Enfin un environnement facile à mettre en place!
Ce qui est bien avec cette méthode c’est que l’on peut déployer ces environnements a la volée selon ces besoins en étant certain qu’ils seront identiques.
Le tout très simplement et ça c'est bien.
Il y a encore d'autres fonctionnalités très pratiques, comme le tooling qui permet d’utiliser des fonctions internes ou même vos propres script par un simple “lando monscript”, dont je dois vous parler, mais ce sera pour un autre post !