# ─── IliaCloud Backend — Image Docker ─────────────────────────────────────────
# Base : Node 22 Alpine (aligné sur l'environnement de dev local)
# Dépendances système : python3, make, g++ (requis pour compiler ssh2)

FROM node:22-alpine

WORKDIR /app

# Dépendances système pour la compilation de ssh2 (module natif)
RUN apk add --no-cache python3 make g++

# Installer les dépendances Node (production uniquement)
COPY package*.json ./
RUN npm ci --omit=dev

# Copier le code source
COPY src ./src

ENV NODE_ENV=production

# Port exposé (sera reverse-proxied par Traefik)
EXPOSE 3000

# Healthcheck interne Docker (vérifier que l'API répond)
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
  CMD node -e "require('http').get('http://localhost:3000/health', (r) => { process.exit(r.statusCode === 200 ? 0 : 1) })"

CMD ["node", "src/index.js"]
