Spaces:
Sleeping
Sleeping
| # Stage 1: Build | |
| FROM node:20.18.0-alpine AS build-stage | |
| WORKDIR /app | |
| # Copier les fichiers de dépendances | |
| COPY package*.json ./ | |
| # Installer les dépendances (sans --only=production=false qui est obsolète) | |
| RUN npm ci | |
| # Copier le code source | |
| COPY . . | |
| # Construire l'application | |
| RUN npm run build | |
| # Stage 2: Production | |
| FROM node:20.18.0-alpine AS production-stage | |
| # Installer serve globalement | |
| RUN npm install -g serve | |
| # Créer un utilisateur non-root pour la sécurité | |
| USER node | |
| WORKDIR /home/node | |
| # Copier les fichiers buildés depuis le stage précédent | |
| COPY --chown=node:node --from=build-stage /app/dist ./dist | |
| # Exposer le port 7860 (requis par Hugging Face Spaces) | |
| EXPOSE 7860 | |
| # Commande pour servir l'application | |
| CMD ["serve", "-s", "dist", "-l", "7860"] |