# 0004. Outils de développement dans Docker - **Statut** : accepté - **Date** : 2026-11-02 - **Décideurs** : Claude Code ## Contexte La machine de développement est ancienne et doit rester légère. Le cadrage prévoit déjà que les chaînes d'outils lourdes (NDK, Emscripten, gnubg de référence) tournent dans Docker. La question s'est posée dès le premier outil de vérification, ShellCheck, absent du PC. ## Décision Rien n'est installé sur le PC en dehors de git, make, Docker et adb. Chaque outil tourne dans une image Docker de version figée, récupérée ou construite par `make setup`. Premier cas : ShellCheck (GPLv3), image `koalaman/shellcheck-alpine:v0.10.0`. ## Alternatives écartées - **Installer les outils avec apt** : versions qui varient d'une machine à l'autre, et pollution du système. ## Conséquences - `make lint` demande d'avoir lancé `make setup` une fois ; il le dit explicitement sinon. - Chaque nouvelle image est signalée avec sa licence dans `CREDITS.md`. ## Amendements ### 2026-11-02 — Outils validés pour l'étape 0 Validé par Pierre. Tous tournent dans Docker et servent seulement à construire ou tester ; rien n'est embarqué dans l'application. | Outil | Licence | Image | Usage | | --- | --- | --- | --- | | ShellCheck | GPLv3 | `koalaman/shellcheck-alpine:v0.10.0` | Lint des scripts shell | | Node.js, `@cucumber/gherkin` | MIT | `ustagammon/gherkin` (`docker/gherkin/`) | Validation des scénarios | | Debian trixie, GNU Backgammon | logiciels libres, GPLv3+ | `ustagammon/gnubg-reference` | gnubg de bureau de référence | | gcc, make | GPLv3 | `ustagammon/build-c` (`docker/build-c/`) | Compilation du moteur | | GLib | LGPL 2.1+ | `ustagammon/build-c` | Outils officiels de génération des données (`makeweights`, `makebearoff`) | | Python 3 | PSF | `ustagammon/build-c` | Comparateur des références | | jq | MIT | `ustagammon/build-c` | Lecture du JSON dans les tests | | Emscripten | MIT / NCSA | `emscripten/emsdk:3.1.64` | Compilation du moteur en WebAssembly (étape 0b) | ### 2026-11-02 — Outils de l'application web (étape 0d) Validés par Pierre avec l'ADR 0009, dans Docker, jamais embarqués : TypeScript (`tsc`, Apache-2.0), Biome (MIT ou Apache-2.0), `@cucumber/cucumber` (MIT), `dependency-cruiser` (MIT). ### 2026-11-03 — Playwright pour les tests dans le navigateur Validé par Pierre : Playwright 1.48.2 (Apache-2.0), image `mcr.microsoft.com/playwright:v1.48.2-noble`, utilisé seulement par `make test-browser` (Chromium et Firefox sans écran). Rien n'est embarqué.