Guide pour obtenir un environnement de développement sur Windows 10
En ayant l'occasion de travailler à distance pour un client, je me suis retrouvé avec un ordinateur fonctionnant avec... Windows 10. Yeay... Ubuntu, tu m'as manqué. 😭
Voici l'histoire d'un petit développeur, essayant de tirer parti de Docker sur Windows.
Le but de ce billet est de créer un environnement aussi proche que possible de celui auquel nous sommes habitués sur la distro Linux.
Apprendre à Windows à "comprendre" les commandes Unix
Tout d'abord, nous devons disposer d'un environnement CLI sûr et agréable pour travailler.
Comment créer des répertoires sans mkdir
, ajouter des alias comme ll
pour ls -lah
, des liens symboliques ou pour installer des logiciels...
Je peux vous recommander de vous rendre sur Chocolatey. C'est un gestionnaire de paquets pour Windows.
Vous pouvez trouver tous les paquets disponibles par la commande CLI choco search a-package-name
ou grâce à leur site web.
Oui, première étape accomplie ! Plus d'installation à partir d'une interface graphique fantaisiste et non fonctionnelle. Et oui, vous pouvez faire des choses comme choco install nodejs
. Ou même...
Attendez un peu...
Installer Docker sur Windows
Grâce à l'étape précédente, vous pouvez installer un des précieux outils qui peut vous éviter d'installer NodeJS, PHP ou quoi que ce soit sur votre hôte. Comme précédemment, utilisez votre outil CLI, pour écrire :
choco install docker-desktop
docker -v
docker-compose -v
docker run hello-world
✅ Grâce à ces commandes, vous avez peut-être une installation Docker fonctionnelle. Vous pouvez l'utiliser pour tester des projets PHP ou NodeJS. Souvent, j'utilise simplement la commande suivante lorsque je dois prévisualiser localement mes articles de blog.
docker run --rm -it -p 8000:8000 --workdir /data -v path-to-my-project:/data node:10 yarn develop --host=0.0.0.0
Obtenir un émulateur de console fantaisie
Mon terminal préféré pour Windows s'appelle Cmder. Il est livré avec un ensemble de commandes Unix et Git-for-Windows intégré.
C'est parce que c'est un paquet contenant Clink et ConEmu qui pourrait utiliser Cygwin (pour obtenir cette sensation de Linux - sur Windows
).
Ou, depuis juin 2019, vous pouvez trouver un nouveau terminal pour Windows avec Cygwin.
Dirigez-vous vers une console/un terminal déjà disponible et tapez :
choco install microsoft-windows-terminal
ou choco install Cmder
selon celui que vous avez choisi.
Comment partager votre lecteur C sous Windows pour les utilisateurs d'Azure AD ?
Tout d'abord, essayez de suivre cet article. Si cela ne fonctionne pas, dans l'explorateur de fichiers, allez dans le dossier que vous souhaitez mapper en tant que volume, ajoutez l'utilisateur et donnez-lui le contrôle total. Avec cette configuration, j'ai pu obtenir l'accès aux fichiers dans les conteneurs docker.
Une autre chose à considérer est une mise à jour de WSL2 avec la dernière version de Docker pour Windows. Je ne l'ai pas encore essayé mais j'ai de mauvaises performances pour Docker par rapport à mon Ubuntu ou MacOS. Mais c'était attendu... 🤷♂️
Parler de Windows Sub-system for Linux (WSL)
[Mise à jour 2020/06/06] Vous pourriez trouver tout ce dont vous avez besoin pour commencer avec WSL 1 ou 2 à partir de cet article sur la "Configuration de Docker pour Windows et WSL pour qu'ils fonctionnent parfaitement".
J'ai essayé de travailler avec, mais je ne le trouve pas vraiment pratique. C'est encore plus lent que d'utiliser Docker directement avec CMD ou Powershell. J'attends avec impatience la version 2 de WSL pour début 2020. J'espère que cela aidera tous ceux qui sont obligés ou qui aiment travailler avec Windows de manière professionnelle.
Aujourd'hui, si vous souhaitez installer Debian ou Ubuntu sous WSL, suivez cet excellent guide de Microsoft.
[Mise à jour du 20/02/2020] : J'utilise maintenant WSL avec asdf-vm pour les dépendances vers PHP ou NodeJS. C'est bien, c'est plus facile de passer d'une version à l'autre et l'utilisation du Terminal Windows est meilleure pour cela. J'utilise toujours docker et docker-compose pour des outils comme RabbitMQ ou Redis.