Machine Virtuelle de Développement

Un modèle de machine virtuelle est disponible sur les machines du département d’informatique. Vous le trouverez sur la machine u-001-1 dans le répertoire : /scratch/bruno/devnode.ova

Avant d’importer la VM, il est nécessaire de configurer VirtualBox afin qu’il stocke les machines localement (et non dans votre répertoire personnel) :

vboxmanage setproperty machinefolder /scratch/$USER/VirtualBox\ VMs

Attention aux conséquences :

  • Les machines virtuelles et leur contenu ne sont pas sauvegardés.
  • Votre VM sera utilisable uniquement sur l’hôte où vous l’avez créée.

La VM est basée sur Ubuntu LTS 2024.04 avec un utilisateur par défaut : user / user

Elle offre un accès au réseau UTLN sans proxy, via :

  • le Wi-Fi (clé USB Wi-Fi assignée à VBox),
  • ou un partage de connexion USB ou Bluetooth.

Configuration depuis l’interface de VirtualBox :

  • Dans les paramètres de la VM → onglet Ports USB, activer USB 2.0/3.0.
  • Ajouter un filtre USB et sélectionner la clé Wi-Fi et le Bluetooth de la carte mère de l’hôte.
  • IDEs :
    • IntelliJ IDEA Ultimate (activation avec votre compte étudiant requise)
    • Visual Studio Code
  • Java et écosystème :
    • SDKMan avec Java 21 (par défaut) et 25
    • Maven
    • Gradle
    • Kotlin
  • Conteneurs :
  • Docker Engine
    • Déjà installé dans la VM. Commandes de base :
      1. sudo systemctl status docker
      2. sudo systemctl start docker
      3. sudo systemctl stop docker
      4. sudo systemctl enable docker
    • 👉 C’est la solution recommandée pour travailler avec Docker dans cette VM.
  • Docker Desktop
    • Fonctionne en lançant une seconde VM à l’intérieur de la VM (nested virtualization, nécessite VT-x activé).
    • ⚠️ Très lent et peu pratique : à éviter sauf cas exceptionnel.
  • Podman
    • Alternative légère à Docker, compatible avec la plupart des commandes Docker.
    • Peut être utile si vous souhaitez expérimenter une approche sans démon système.
  • Gestion de versions :
    • Git (avec git-flow)
    • gh — CLI GitHub
  • Shell :
    • Zsh avec zprezto
  • REST :
    • curlie, httpie et jq