Installation et configuration¶
Installer l'extension Dev Containers, configurer le backend conteneur et créer un premier devcontainer fonctionnel.
Prerequis¶
Backend conteneur¶
Un runtime de conteneurs est nécessaire. Deux options :
Voir le tutoriel complet : Conteneuriser avec Podman
Podman rootless
Podman fonctionne sans daemon et sans privileges root. C'est l'option la plus securisee pour le développement local.
Extension VS Code¶
Configurer VS Code pour Podman¶
Si vous utilisez Podman, indiquer a VS Code de l'utiliser comme runtime :
// settings.json (User)
{
"dev.containers.dockerPath": "podman",
"dev.containers.dockerComposePath": "podman-compose"
}
Premier devcontainer¶
Structure minimale¶
Créer le dossier .devcontainer/ a la racine du projet :
Configuration de base¶
// .devcontainer/devcontainer.json
{
"name": "Mon Projet",
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
// Outils a installer via les features
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "20"
}
},
// Extensions VS Code dans le conteneur
"customizations": {
"vscode": {
"extensions": [
"esbenp.prettier-vscode",
"dbaeumer.vscode-eslint"
],
"settings": {
"editor.formatOnSave": true
}
}
},
// Commande executee apres creation
"postCreateCommand": "npm install",
// Port forwarde automatiquement
"forwardPorts": [3000],
// Utilisateur non-root
"remoteUser": "vscode"
}
Lancer le devcontainer¶
- Ctrl+Shift+P → "Dev Containers: Reopen in Container"
- VS Code reconstruit le conteneur (première fois : quelques minutes)
- Le terminal s'ouvre dans le conteneur
- Les extensions sont installees dans le conteneur
Vérifier :
# Dans le terminal du devcontainer
node --version # v20.x
whoami # vscode
cat /etc/os-release # Ubuntu
Avec un Dockerfile personnalise¶
Pour plus de contrôle sur l'image :
# .devcontainer/Dockerfile
FROM mcr.microsoft.com/devcontainers/base:ubuntu
# Installer des outils systeme
RUN apt-get update && apt-get install -y \
jq \
httpie \
&& rm -rf /var/lib/apt/lists/*
// .devcontainer/devcontainer.json
{
"name": "Mon Projet",
"build": {
"dockerfile": "Dockerfile"
},
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" },
"ghcr.io/devcontainers/features/python:1": { "version": "3.12" }
}
}
Vérification¶
Apres le lancement du devcontainer :
- Le terminal affiche le prompt du conteneur (pas celui de votre machine)
- Les extensions listees dans
devcontainer.jsonsont installees - Les ports configures dans
forwardPortssont accessibles depuis le navigateur local - Les fichiers du projet sont presents (montes via un volume)