FROM node:22-bookworm-slim AS deps WORKDIR /app RUN apt-get update -y \ && apt-get install -y --no-install-recommends openssl ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN corepack enable && corepack prepare pnpm@9.15.4 --activate COPY pnpm-lock.yaml pnpm-workspace.yaml package.json ./ COPY apps/web/package.json ./apps/web/ COPY apps/api/package.json ./apps/api/ RUN pnpm install --frozen-lockfile FROM deps AS builder WORKDIR /app COPY apps/web ./apps/web ARG NEXT_PUBLIC_API_URL=http://localhost:3001 ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL} ENV NEXT_TELEMETRY_DISABLED=1 ENV NODE_ENV=production RUN pnpm --filter web build FROM node:22-bookworm-slim AS runner WORKDIR /app ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV PORT=3000 ENV HOSTNAME=0.0.0.0 RUN addgroup --system --gid 1001 nodejs \ && adduser --system --uid 1001 nextjs COPY --from=builder --chown=nextjs:nodejs /app/apps/web/public ./apps/web/public COPY --from=builder --chown=nextjs:nodejs /app/apps/web/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/apps/web/.next/static ./apps/web/.next/static USER nextjs EXPOSE 3000 CMD ["node", "apps/web/server.js"]