# frontend/Dockerfile — phase-15 멀티스테이지(Next.js standalone) FROM node:20-slim AS deps WORKDIR /app RUN corepack enable COPY package.json pnpm-lock.yaml ./ RUN pnpm install --frozen-lockfile FROM node:20-slim AS builder WORKDIR /app RUN corepack enable COPY --from=deps /app/node_modules ./node_modules COPY . . ENV NEXT_TELEMETRY_DISABLED=1 RUN pnpm build FROM node:20-slim AS runtime WORKDIR /app ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3000 RUN useradd -m -u 10002 web # next.config 에 output:"standalone" 필요(없으면 .next 전체 복사로 대체) COPY --from=builder --chown=web:web /app/.next/standalone ./ COPY --from=builder --chown=web:web /app/.next/static ./.next/static COPY --from=builder --chown=web:web /app/public ./public USER web EXPOSE 3000 CMD ["node", "server.js"]