Personnaliser les paramètres du projet et de l’éditeur

Effectué

Vous avez configuré un conteneur de développement pour l’un des projets de votre agence. Désormais, il fonctionnera pour toute personne disposant de Docker et de l’extension Dev Containers. Vous devrez toujours installer des dépendances. Ils peuvent également avoir besoin d’extensions Visual Studio Code dont ils ignorent l’existence.

Heureusement, vous pouvez entièrement personnaliser et automatiser l’ensemble de la configuration du projet à l’aide du fichier devcontainer.json.

Présentation détaillée de devcontainer.json

Examinons les principales options contenues dans le fichier .devcontainer/devcontainer.json du projet de tableau de bord Products. Il est un peu long pour pouvoir être examiné en une seule fois. Nous allons donc l’étudier section par section.

Configuration de build

La propriété image définit la façon dont le conteneur est créé, en fonction de ce que l’on appelle une image conteneur.

"image": "mcr.microsoft.com/devcontainers/python:0-3.11"
},

Cette image est hébergée dans le référentiel devcontainers/images, où vous pouvez la consulter plus en détail.

Vous pouvez également utiliser des fichiers Dockerfile ou Docker Compose pour effectuer votre configuration. Ces fichiers peuvent résider dans votre dossier .devcontainer. Ils vous permettent de configurer plus en détails certaines exigences d’installation, comme l’installation de logiciels supplémentaires. Pour en savoir plus, consultez notre documentation sur les conteneurs de développement.

Fonctionnalités

Les fonctionnalités Features du conteneur de développement sont des unités autonomes pouvant être partagées du code d’installation et de configuration de conteneur de développement. Ce nom provient de l’idée que le référencement de l’un d’eux vous permet d’ajouter rapidement et facilement d’autres « fonctionnalités » d’outils, d’exécution ou de bibliothèque dans votre conteneur de développement que vous pouvez utiliser, vous ou vos collaborateurs.

Quand vous utilisez la commande VS Code Dev Containers: Add Dev Container Configuration Files, une liste de scripts s’affiche permettant de personnaliser les configurations de conteneur de développement existantes, comme l’installation de Git ou de l’interface Azure CLI.

Paramètres du projet

La dernière section du fichier concerne directement la configuration du projet.

customizations définit des propriétés spécifiques au produit pour les produits prenant en charge les conteneurs de développement, comme VS Code et GitHub Codespaces.

Vous pouvez par exemple définir vscode.settings pour copier des paramètres spécifiques à l’ordinateur dans le conteneur. Il s’agit des paramètres que vous pouvez éventuellement avoir dans votre propre configuration de Visual Studio Code. En les ajoutant aux settings, vous vous assurez que quiconque ouvre ce projet obtient ces paramètres VS Code spécifiques.

Dans ce conteneur Python, vous pouvez voir ces paramètres dans son image de base mcr.microsoft.com/devcontainers/python:0-3.11. Ils procurent à l’utilisateur une expérience d’édition Python améliorée.

  • Vous pouvez utiliser le tableau extensions pour spécifier les extensions Visual Studio Code à installer dans Visual Studio Code quand celui-ci se connecte au conteneur. Votre configuration Visual Studio Code normale et toutes les extensions que vous avez déjà sont manquantes quand vous utilisez Dev Containers. Les extensions sont spécifiées ici avec leurs ID.

postCreateCommand

La propriété postCreateCommand vous permet d’exécuter toutes les commandes de votre choix après la création du conteneur. Vous vous souvenez peut-être que dans le premier exercice, vous avez dû exécuter la commande pip3 pour installer les dépendances. Mais peut-être ne saurez-vous pas comment procéder ? Ici, vous pouvez faire en sorte que cette opération s’effectue automatiquement, et que les autres utilisateurs n’aient pas à s’en soucier.

Dans le prochain exercice, vous allez modifier le fichier devcontainer.json pour automatiser plusieurs aspects du projet qui permettront de lancer rapidement les autres développeurs vers la voie du succès.