# Build stage FROM registry.bstein.dev/bstein/node:20-bookworm AS build WORKDIR /app COPY frontend/package*.json ./ RUN npm ci --ignore-scripts COPY frontend/ ./ COPY media/ ./public/media/ RUN npm run build # Runtime stage FROM nginx:1.27-alpine WORKDIR /usr/share/nginx/html # Minimal nginx config with SPA fallback. COPY frontend/nginx.conf /etc/nginx/conf.d/default.conf COPY --chown=nginx:nginx --from=build /app/dist ./ RUN chown -R nginx:nginx /etc/nginx/conf.d /usr/share/nginx/html /var/cache/nginx /var/run EXPOSE 8080 USER nginx CMD ["nginx", "-g", "daemon off;"]