Conteneurisez vos environnements de développement avec les devcontainers

Atelier C++

Maxime PIGOU

2 décembre 2023

$ WHOAMI

center

Avant de démarrer

Prérequis pour la première partie de l'atelier:

  • VSCode (et non pas VSCodium, désolé...)
  • Le greffon "devcontainer": ms-vscode-remote.remote-containers
  • Docker
$ docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.

devcontainer?

devcontainer?

Premier contact

Guide de démarrage

devcontainer!

devcontainer!

Outils de développement directement installés

  • linter / static analysis / pre-commit
  • extensions VSCode recommandées
  • instance "bac à sable" locale de Home-Assistant
  • ...
  • En moins de 5 minutes!

Process de démarrage avec VSCode

center

Process de démarrage avec VSCode

center

Process de démarrage avec VSCode

center

devcontainer.json:

{
  "name": "Name of the devcontainer",
  "build": {
    "dockerfile": "Dockerfile"  // Chemin relatif vers un Dockerfile
  },
  "forwardPorts": [], // Liste de port du container à
                      // forwarder sur l'hôte du client VSCode
  "postCreateCommand": "./scripts/setup.sh", // commande à exécuter après
                                             // démarrage du devcontainer
  "customizations": {  // Options spécifiques aux IDE
    "vscode": {
      "extensions": [], // Liste d'extensions VSCode à installer dans le devenv
      "settings": {
                "editor.rulers": [
                    79
                ],
}}}}

Process de démarrage avec VSCode

center

Process de démarrage avec VSCode

center

Process de démarrage avec VSCode

center

devcontainer.json

En pratique

Plusieurs approches possibles pour démarrer

  1. Cloner une base git directement dans un conteneur
    • VS Code guide la définition d'un devcontainer par défaut si aucun n'est défini!
  2. Monter un dossier local dans un conteneur
  3. Créer un devcontainer vide

Et sans VSCode?

  1. devcontainer CLI
  2. JetBrains: support depuis 2023.2 EAP 6
  3. Piste pour VSCodium: vscode-remote-oss