# Multi-stage build producing a small Cloud Run image from Next.js standalone output.
# NOTE: WORKDIR must NOT be /app — a project root whose basename is "app" collides
# with the app/ router and the /app route, and Next mis-resolves "/" to the /app
# page (every URL then redirects to sign-in). /srv is safe.

FROM node:22-slim AS deps
WORKDIR /srv
COPY package.json package-lock.json* ./
RUN npm ci

FROM node:22-slim AS builder
WORKDIR /srv
COPY --from=deps /srv/node_modules ./node_modules
COPY . .
RUN npm run build

FROM node:22-slim AS runner
WORKDIR /srv
ENV NODE_ENV=production
ENV PORT=8080
ENV HOSTNAME=0.0.0.0
COPY --from=builder /srv/public ./public
COPY --from=builder /srv/.next/standalone ./
COPY --from=builder /srv/.next/static ./.next/static
EXPOSE 8080
CMD ["node", "server.js"]
