feat(deploy): image web Docker et docker-compose complet (P5)

- Dockerfile multi-étapes (node:22-alpine, pnpm, output standalone), .dockerignore
- docker-compose : service web (hôte 4000) + mysql + mongo avec volumes nommés
- Env de connexion selon DB_IMPL (MYSQL_*, MONGODB_URI) ; mongo ?authSource=admin
- Seed MySQL via 02-seed.sh (--default-character-set=utf8mb4) pour un UTF-8 propre
- fix(api): parseTags gère les colonnes JSON déjà parsées par mysql2
- TODO : phase 5 et DoD cochées
This commit is contained in:
devcodetools committed 2026-09-22 09:00:07 +02:00
1 parent 17ae195b39
commit f165168608
9 files changed
+112 -20

No files matched your search

+21
View File
@@ -1,4 +1,25 @@
services:
web:
build: .
container_name: flashcards-web
restart: unless-stopped
depends_on:
mysql:
condition: service_healthy
mongo:
condition: service_healthy
environment:
DB_IMPL: ${DB_IMPL:-mysql}
MYSQL_HOST: mysql
MYSQL_PORT: '3306'
MYSQL_USER: flashcards
MYSQL_PASSWORD: flashcards
MYSQL_DATABASE: flashcards
MONGODB_URI: mongodb://flashcards:flashcards@mongo:27017/flashcards?authSource=admin
MONGODB_DATABASE: flashcards
ports:
- '4000:3000'
mysql:
image: mysql:8.4
container_name: flashcards-mysql