Image docker/web/ (Node 22.11) avec TypeScript 6.0.3, @types/node, Biome 2.5.15, @cucumber/cucumber 12.9.0 et dependency-cruiser 18.6.0, versions figées (ADR 0009). make web compile app/ dans build/web/ ; make lint passe Biome et tsc --noEmit, et vérifie à part que le domaine compile sans les types de Node ni du navigateur. make setup construit l'image ; CREDITS.md à jour. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
26 lines
1.0 KiB
Docker
26 lines
1.0 KiB
Docker
# Outils de l'application web (ADR 0009) : TypeScript, Biome, Cucumber et
|
|
# dependency-cruiser, sous Node. Rien de tout cela n'est embarqué dans
|
|
# l'application : ces outils compilent, vérifient et testent.
|
|
#
|
|
# Les modules sont installés dans /opt/tools, puis rendus visibles sous
|
|
# /node_modules, à la racine du conteneur : Node et TypeScript les trouvent en
|
|
# remontant depuis le dépôt monté sous /src, sans node_modules dans le dépôt.
|
|
# (npm refuse d'installer directement à la racine.)
|
|
#
|
|
# Versions figées, publiées depuis plus de deux semaines au 2026-11-02.
|
|
# Cucumber reste en 12.x : la 13 charge des modules ES avec require(), ce que
|
|
# Node 22.11 ne fait pas sans option (il faut Node 22.12).
|
|
FROM node:22.11.0-alpine3.20
|
|
|
|
WORKDIR /opt/tools
|
|
RUN npm install --no-audit --no-fund --save-exact \
|
|
typescript@6.0.3 \
|
|
@types/node@22.20.5 \
|
|
@biomejs/biome@2.5.15 \
|
|
@cucumber/cucumber@12.9.0 \
|
|
dependency-cruiser@18.6.0 \
|
|
&& npm cache clean --force \
|
|
&& ln -s /opt/tools/node_modules /node_modules
|
|
|
|
ENV PATH="/opt/tools/node_modules/.bin:${PATH}"
|