# Serveur Fastify + Socket.IO (Bun, monorepo). Contexte de build = racine du repo.
FROM oven/bun:1.3.14-alpine

WORKDIR /app

# Manifests d'abord (cache des dépendances).
COPY package.json bun.lock turbo.json ./
COPY apps/server/package.json apps/server/package.json
COPY apps/web/package.json apps/web/package.json
COPY packages/shared/package.json packages/shared/package.json
COPY packages/ui/package.json packages/ui/package.json
RUN bun install --frozen-lockfile

# Sources nécessaires au serveur (le client n'est pas requis ici).
COPY packages/shared packages/shared
COPY apps/server apps/server

WORKDIR /app/apps/server
ENV NODE_ENV=production
EXPOSE 3001

# Applique les migrations (idempotent) puis démarre le serveur.
CMD ["sh", "-c", "bun src/db/migrate.ts && bun src/index.ts"]
