Integration équipe¶
Partager un environnement de développement standardise pour que l'onboarding se fasse en une commande.
.devcontainer dans le dépôt¶
Le dossier .devcontainer/ est commite dans Git. Chaque clone du projet inclut l'environnement de dev :
git clone https://github.com/equipe/projet.git
code projet/
# VS Code detecte .devcontainer et propose "Reopen in Container"
C'est tout. Le nouveau développeur n'installe rien d'autre que VS Code et Podman.
Image de base partagee¶
Pour des projets multiples avec un socle commun, créer une image de base d'équipe :
# images/devcontainer-base/Dockerfile
FROM mcr.microsoft.com/devcontainers/base:ubuntu
# Outils communs a tous les projets
RUN apt-get update && apt-get install -y \
jq httpie bat eza ripgrep fd-find fzf \
&& rm -rf /var/lib/apt/lists/*
# Shell commun
RUN sh -c "$(curl -fsSL https://starship.rs/install.sh)" -- --yes
COPY starship.toml /home/vscode/.config/starship.toml
# Configuration Git d'equipe
COPY .gitconfig.team /etc/gitconfig.d/team
Publier sur un registre interne :
podman build -t registry.internal/devcontainer-base:latest .
podman push registry.internal/devcontainer-base:latest
Utiliser dans les projets :
{
"image": "registry.internal/devcontainer-base:latest",
"features": {
"ghcr.io/devcontainers/features/node:1": { "version": "20" }
}
}
Conventions d'équipe¶
| Regle | Justification |
|---|---|
Un seul devcontainer.json par projet | Pas de variantes — tout le monde a le même environnement |
| Versions explicites dans les features | "version": "20" pas "latest" — reproductibilite |
postCreateCommand idempotent | Doit pouvoir s'exécuter plusieurs fois sans erreur |
Pas de secrets dans devcontainer.json | Utiliser des variables d'environnement ou des fichiers .env ignores par Git |
Codespaces pour le remote¶
GitHub Codespaces utilise la spécification devcontainer. Si le projet a un .devcontainer/, Codespaces fonctionne automatiquement :
// .devcontainer/devcontainer.json — ajout Codespaces
{
"hostRequirements": {
"cpus": 4,
"memory": "8gb",
"storage": "32gb"
}
}
Usage : depuis GitHub, cliquer sur "Code" → "Codespaces" → "Create codespace".
Prebuilds
Configurez les prebuilds Codespaces pour que le conteneur soit déjà construit quand un développeur lance un codespace. Gain : de minutes a secondes.
Onboarding automatise¶
Checklist du nouvel arrivant :
- Installer VS Code (voir IDE)
- Installer Podman (voir Conteneuriser)
- Installer l'extension Dev Containers :
code --install-extension ms-vscode-remote.remote-containers - Cloner le projet :
git clone ... - Ouvrir dans VS Code :
code projet/ - Accepter "Reopen in Container"
- Attendre le build (première fois) → pret a coder
Temps total : ~10 minutes (dont le build du conteneur).