Le dossier public/ étant vide n'était pas tracké par git, donc
absent après clone sur une machine Linux. Le COPY runner échouait
sur 'failed to compute cache key: "/app/public": not found'.
- Ajoute public/.gitkeep pour versionner le dossier
- Ajoute `mkdir -p /app/public` dans le stage builder en filet
de sécurité si le dossier disparaît à nouveau
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Le parent docker-compose.yml fixe `network_mode: host` ; combiné
avec une déclaration `networks:` dans l'override, Compose refuse
le projet (mutuellement exclusifs). On utilise `!reset null` pour
supprimer la clé héritée et permettre l'usage du réseau bridge
personnalisé. Requiert Compose v2.24+.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
L'entrypoint utilise `npx prisma` et `npx tsx` mais les symlinks
correspondants vivent dans node_modules/.bin, qui n'était pas
copié depuis le builder. Résultat : `sh: prisma: not found` au
démarrage. On ajoute la copie de .bin ; les symlinks vers les
paquets non copiés deviendront dangling sans impact (on utilise
uniquement prisma et tsx au runtime).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Compose nettoyé en deux profils isolés (sqlite, postgres) avec
healthcheck HTTP et network_mode host pour la découverte LAN.
- Override docker-compose.bridge.yml pour les environnements où
host mode n'est pas disponible (macOS/Windows).
- Entrypoint tolérant : fallback prisma db push quand aucune
migration n'existe encore.
- Dockerfile robuste sans package-lock.json (npm install fallback).
- .env.docker.example et docker/README.md pour un démarrage en
une commande.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Le script docker/entrypoint.sh :
- Attend PostgreSQL (netcat sur host:port extrait de DATABASE_URL)
- Cree le dossier /app/data si SQLite
- Applique les migrations via prisma migrate deploy
- Execute le seed si RUN_SEED=true (non bloquant)
- Demarre server.js (mode standalone Next)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>