feat(docker): finalise le déploiement compose (sqlite + postgres)

- 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>
This commit is contained in:
2026-05-15 14:03:46 +02:00
parent c18d831d89
commit 6c020e7ee3
7 changed files with 411 additions and 35 deletions

View File

@@ -1,15 +1,74 @@
# ---------------------------------------------------------------
# Docker build context — exclusions
# ---------------------------------------------------------------
# Dependencies (réinstallés dans l'image)
node_modules
.pnp
.pnp.js
# Build artifacts
.next
.git
out
dist
build
*.tsbuildinfo
next-env.d.ts
# Env (les secrets ne doivent jamais être copiés dans l'image)
.env
.env.local
.env.*.local
npm-debug.log
Dockerfile
.dockerignore
.env.production
.env.development.local
.env.test.local
# Logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Git
.git
.gitignore
.gitattributes
# IDE
.vscode
.idea
*.swp
*.swo
# OS
.DS_Store
Thumbs.db
# Docker (évite la récursion). On NE PEUT PAS exclure docker/ car
# l'image a besoin de docker/entrypoint.sh ; on se contente d'exclure
# le compose et le dockerignore qui sont inutiles dans l'image.
docker/docker-compose.yml
docker/docker-compose.bridge.yml
.dockerignore
# Bases locales (SQLite dev)
data
*.db
*.db-journal
prisma/data
prisma/*.db
prisma/*.db-journal
# Tests & coverage
tests
coverage
.nyc_output
__tests__
# Docs (sauf README)
*.md
!README.md
# CI / Misc
.github
.husky