diff --git a/.dockerignore b/.dockerignore index a960531..14b8cb8 100644 --- a/.dockerignore +++ b/.dockerignore @@ -3,7 +3,11 @@ node_modules dist **/dist **/dist-bundle +# Les motifs .dockerignore ne sont pas récursifs : sans la variante **/, les +# caches de compilation des workspaces entrent dans l'image, et `tsc -b` s'y fie +# pour ne rien émettre alors que les dist/ ont été exclus. *.tsbuildinfo +**/*.tsbuildinfo data .env .env.local diff --git a/Dockerfile b/Dockerfile index c0e26de..25febe4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,7 +17,11 @@ RUN npm ci COPY tsconfig.base.json ./ COPY packages ./packages -RUN npm run build + +# Ceinture et bretelles : quoi qu'il arrive à filtrer à travers le contexte, la +# compilation dans l'image part d'un état froid. Un tsconfig.tsbuildinfo hérité +# de l'hôte ferait croire à `tsc -b` que les dist/ existent déjà. +RUN find packages -name '*.tsbuildinfo' -delete && npm run build # --- Étape 2 : exécution ---------------------------------------------------- FROM node:24-alpine AS runtime diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json index 1c757f7..e37a712 100644 --- a/packages/web/tsconfig.json +++ b/packages/web/tsconfig.json @@ -15,5 +15,8 @@ "resolveJsonModule": true, "types": ["vite/client"] }, - "include": ["src/**/*.ts", "src/**/*.tsx", "vite.config.ts"] + "include": ["src/**/*.ts", "src/**/*.tsx", "vite.config.ts"], + // Déclarée comme pour server et agent : sans elle, web était le seul paquet à + // dépendre de l'ordre du script de build plutôt que du graphe de projets. + "references": [{ "path": "../shared" }] }