Files
n3wt-school/Front-End/Dockerfile

37 lines
849 B
Docker

# Build argument pour choisir le mode
ARG BUILD_MODE=production
# Build stage pour production uniquement
FROM node:18-alpine AS builder
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
COPY . .
RUN npm run build
# Development stage
FROM node:18-alpine AS development
ENV NODE_ENV=development
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# Ajout de la surveillance des fichiers pour le hot reload
ENV WATCHPACK_POLLING=true
ENV CHOKIDAR_USEPOLLING=true
COPY . .
EXPOSE 3000
CMD ["npm", "run", "dev"]
# Production stage
FROM node:18-alpine AS production
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/messages ./messages
EXPOSE 3000
CMD ["node", "server.js"]
# Final stage selection
FROM ${BUILD_MODE}