# syntax=docker/dockerfile:1.7

FROM node:24-slim AS deps
RUN npm install -g pnpm@10.18.1
WORKDIR /usr/src
RUN chown node:node /usr/src
USER node
COPY --chown=node:node package.json pnpm-lock.yaml .npmrc ./
RUN pnpm install --frozen-lockfile

FROM deps AS dev
EXPOSE 6006
CMD ["pnpm", "storybook"]

FROM deps AS builder
COPY --chown=node:node . .
RUN pnpm build-storybook

FROM nginx:alpine AS runner
COPY --from=builder /usr/src/storybook-static /usr/share/nginx/html
EXPOSE 80

HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
  CMD wget -q -O /dev/null http://localhost/ || exit 1
