# Build stage -------------------------------------------------------------- FROM node:20-alpine AS build WORKDIR /app COPY package.json ./ RUN npm install --no-audit --no-fund COPY . . RUN npm run build # Runtime stage ------------------------------------------------------------ FROM node:20-alpine AS runtime WORKDIR /app COPY --from=build /app/dist ./dist COPY --from=build /app/package.json ./package.json # Tiny static-file server. RUN npm install -g serve@14.2.3 EXPOSE 3000 HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \ CMD wget -qO- http://localhost:3000 >/dev/null || exit 1 CMD ["serve", "-s", "dist", "-l", "3000"]