FROM node:22-alpine AS web-builder
WORKDIR /web
COPY web/package.json ./
RUN npm install
COPY web/ ./
RUN npm run build

FROM nginx:alpine AS runner
RUN apk add --no-cache curl
COPY --from=web-builder /web/dist /usr/share/nginx/html

RUN printf 'server {\n    listen 8419;\n    server_name _;\n    root /usr/share/nginx/html;\n    index index.html;\n    location / {\n        try_files $uri $uri/ $uri/index.html =404;\n    }\n}\n' > /etc/nginx/conf.d/default.conf

EXPOSE 8419

HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \
    CMD curl -f http://localhost:8419/ || exit 1

CMD ["nginx", "-g", "daemon off;"]
