# syntax=docker/dockerfile:1.7 FROM node:22-slim AS base RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates \ && rm -rf /var/lib/apt/lists/* \ && npm install -g pnpm ENV CI=true \ PNPM_HOME=/pnpm \ PATH=/pnpm:$PATH RUN pnpm config set store-dir /pnpm/store FROM base AS builder WORKDIR /app COPY pnpm-lock.yaml ./ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm fetch COPY . . RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ pnpm install --frozen-lockfile --offline \ --filter @oo/admin... --filter @oo/shared-types RUN pnpm --filter @oo/shared-types build ARG NEXT_PUBLIC_MLFLOW_URL=/mlflow ENV NEXT_TELEMETRY_DISABLED=1 \ NEXT_PUBLIC_MLFLOW_URL=$NEXT_PUBLIC_MLFLOW_URL RUN pnpm --filter @oo/admin build FROM node:22-slim AS runner ENV NODE_ENV=production NEXT_TELEMETRY_DISABLED=1 PORT=3080 DOCS_ROOT=/app/docs WORKDIR /app COPY --from=builder /app/apps/admin/.next/standalone ./ COPY --from=builder /app/apps/admin/.next/static ./apps/admin/.next/static COPY --from=builder /app/docs ./docs CMD ["node", "apps/admin/server.js"]