Spaces:
Running
Running
# 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"] |