FROM node:20-alpine AS build WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . # Ensure CSS variables are present RUN mkdir -p public/styles RUN cp -r styles/* public/styles/ || true RUN npm run build FROM node:20-alpine AS production WORKDIR /app RUN npm install -g serve COPY --from=build /app/dist ./dist EXPOSE 3000 CMD ["serve", "-s", "dist", "-l", "3000"] HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD wget -qO- http://localhost:3000/ || exit 1