# --------------------------------------------------------------------------- # @sport/admin production image (Next.js standalone output). # --------------------------------------------------------------------------- FROM node:22-alpine AS base RUN corepack enable WORKDIR /app FROM base AS pruner RUN apk add --no-cache libc6-compat COPY . . RUN pnpm dlx turbo@2.10.9 prune @sport/admin --docker FROM base AS builder RUN apk add --no-cache libc6-compat COPY --from=pruner /app/out/json/ . RUN pnpm install --frozen-lockfile COPY --from=pruner /app/out/full/ . ARG NEXT_PUBLIC_API_URL ARG NEXT_PUBLIC_APP_URL ENV NEXT_PUBLIC_API_URL=$NEXT_PUBLIC_API_URL ENV NEXT_PUBLIC_APP_URL=$NEXT_PUBLIC_APP_URL ENV NEXT_TELEMETRY_DISABLED=1 RUN pnpm turbo run build --filter=@sport/admin FROM base AS runner ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV PORT=3001 ENV HOSTNAME=0.0.0.0 RUN addgroup -g 1001 -S nodejs && adduser -u 1001 -S nextjs -G nodejs COPY --from=builder --chown=nextjs:nodejs /app/apps/admin/.next/standalone ./ COPY --from=builder --chown=nextjs:nodejs /app/apps/admin/.next/static ./apps/admin/.next/static COPY --from=builder --chown=nextjs:nodejs /app/apps/admin/public ./apps/admin/public USER nextjs EXPOSE 3001 CMD ["node", "apps/admin/server.js"]