# syntax=docker/dockerfile:1
# ---------------------------------------------------------------------------
# SvelteKit frontend Dockerfile.
#
# Usage:
#   docker build --build-arg APP=super-certifier-admin -t guardian-sca-ui .
# ---------------------------------------------------------------------------

FROM node:20-alpine AS builder

ARG APP

WORKDIR /build
COPY pnpm-workspace.yaml package.json* ./
RUN npm install -g pnpm

COPY apps/${APP} ./apps/${APP}
WORKDIR /build/apps/${APP}
RUN pnpm install --frozen-lockfile || pnpm install
RUN pnpm build

# Runtime
FROM node:20-alpine AS runtime

ARG APP
ENV NODE_ENV=production

WORKDIR /app
COPY --from=builder /build/apps/${APP}/build ./build
COPY --from=builder /build/apps/${APP}/package.json ./package.json
RUN npm install --omit=dev 2>/dev/null || true

EXPOSE 3000
CMD ["node", "build"]
