ARG BASE_IMAGE=investibook-frontend-base:latest
FROM ${BASE_IMAGE} AS builder
WORKDIR /app

# Source (host node_modules excluded by .dockerignore; keep pre-installed deps from base)
COPY . .

# No-op when lockfile matches base; required if package.json patches differ
RUN pnpm install --frozen-lockfile

RUN pnpm run build

FROM ${BASE_IMAGE} AS runner
WORKDIR /app

ENV NODE_ENV=production

RUN apk add --no-cache libc6-compat

COPY --from=builder /app/next.config.ts ./
COPY --from=builder /app/data ./data
COPY --from=builder /app/public ./public
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static

EXPOSE 3000

ENV PORT=3000

CMD ["node", "server.js"]
