Aller au contenu

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 :

  1. Installer VS Code (voir IDE)
  2. Installer Podman (voir Conteneuriser)
  3. Installer l'extension Dev Containers : code --install-extension ms-vscode-remote.remote-containers
  4. Cloner le projet : git clone ...
  5. Ouvrir dans VS Code : code projet/
  6. Accepter "Reopen in Container"
  7. Attendre le build (première fois) → pret a coder

Temps total : ~10 minutes (dont le build du conteneur).