# Multi-stage build for development and production FROM node:18-alpine AS base WORKDIR /app # Copy package files COPY package*.json ./ # Development stage FROM base AS development RUN npm install COPY . . EXPOSE 5173 CMD ["npm", "run", "dev"] # Production stage FROM base AS production ARG VITE_AUTH0_DOMAIN ARG VITE_AUTH0_CLIENT_ID ARG VITE_AUTH0_AUDIENCE ENV VITE_AUTH0_DOMAIN=${VITE_AUTH0_DOMAIN} ENV VITE_AUTH0_CLIENT_ID=${VITE_AUTH0_CLIENT_ID} ENV VITE_AUTH0_AUDIENCE=${VITE_AUTH0_AUDIENCE} RUN npm ci COPY . . RUN npm run build RUN npm prune --omit=dev # Serve with nginx FROM nginx:alpine AS serve COPY --from=production /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]