Déployer facilement et automatiquement vos VMs docker grâce à Lando
Vendredi 11 Aout 2023 08:30

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.

Docker warning

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.

Lando statut

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 !

Nous utilisons des cookies pour améliorer et personnaliser votre expérience, fournir des publicités pertinentes et analyser les performances du site.

Politique de confidentialité Accepter