
WSL 2 : Création d'un environnement de développement
Retrouvez ici comment créer un environnement de développement dans une WSL 2 avec une distribution Debian, GraalVM21 et Node 21. La WSL 2 contiendra également un Docker Compose.
Création d'une WSL 2 Debian
Dans mon dernier billet, nous avions vu comment créer une WSL 2 sous Windows.
https://blog.vagabond.synology.me/blog/show/2/installation-d'une-wsl2-avec-une-distribution-debian
Créer une WSL 2 sous Debian : ```html wsl --install Debian ```
Le username sera "docker" dans notre exemple.
VScode vous permet de prendre le contrôle de la WSL et de naviguer dans son arborescence Linux.
Installer Docker et Docker Compose
- Dans votre home:
cd ~ / - Créer un répertoire "docker":
mkdir docker - Créer un fichier "install_docker.sh":
cd docker && touch install_docker.sh
Le contenu du script d'installation se trouve dans les Tools de ce site : ici
#!/bin/bash
#debian
sudo apt update
sudo apt upgrade
sudo apt full-upgrade
#docker
sudo apt-get install -y lsb-release
sudo apt install --no-install-recommends apt-transport-https ca-certificates curl gnupg2 nano
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt install docker-ce docker-ce-cli containerd.io
#group docker
sudo usermod -aG docker $USER
#docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
#test
docker --version
docker compose version
Cela nécessite une modification der votre ".profile" : nano ~/.profile
if grep -q "microsoft" /proc/version > /dev/null 2>&1; then
if service docker status 2>&1 | grep -q "is not running"; then
wsl.exe --distribution "${WSL_DISTRO_NAME}" --user root \
--exec /usr/sbin/service docker start > /dev/null 2>&1
fi
fi
-Mettre à jour le profile : source ~/.profile
Installer GraalVM et Node
GraalVM 21 pour le Back Office Quarkus ou Springboot
Installer GraalVM 21 et Maven 3.9 avec SdkMan : https://sdkman.io/
sudo apt-get install curl zip unzip git
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 21.0.1-graal
export GRAALVM_HOME=$HOME/.sdkman/candidates/java/21-graalce
sdk install maven
Node 21 pour le Front Office React
Installer Node 21 avec NVM (Node Version Manager) : https://snowpact.com/blog/nvm-guide-d-installation
sudo apt-get install build-essential
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.bashrc
nvm install node
Création de container Docker
Postgres : Base de données principale du Back Office,
https://blog.vagabond.synology.me/tools/10/Docker/postgres/docker-compose.ymlMongoDb : Base de données pour le cache du Back Office https://blog.vagabond.synology.me/tools/14/Docker/mongo-db/docker-compose.yml
Kafka : gestion en temps réel de Topic Kafka
Création d'un Topics :kafka-topics.sh --create --topic mail --bootstrap-server localhost:9092https://blog.vagabond.synology.me/tools/11/Docker/kafka/docker-compose.yml**mailhog ** : Gestion des mails en local
https://blog.vagabond.synology.me/tools/56/Docker/mailhog/docker-compose.yaml**Grafana ** : Suivis du Back Office
https://blog.vagabond.synology.me/tools/12/Docker/grafana/docker-compose.yml**Sonarqube ** : Quality Gate des projets Back et Front
https://blog.vagabond.synology.me/tools/9/Docker/sonarqube/docker-compose.yml
