FROM node:22-alpine AS build WORKDIR /app COPY package*.json ./ RUN npm ci --silent COPY . . RUN npm run build FROM nginx:alpine COPY --from=build /app/dist /usr/share/nginx/html # nginx official image runs envsubst on /etc/nginx/templates/*.template → /etc/nginx/conf.d/ COPY nginx.conf.template /etc/nginx/templates/default.conf.template EXPOSE 80