Dockerfile
Rama main · réplica de lectura del repositorio original.
FROM node:24.13.0-bookworm@sha256:1de022d8459f896fff2e7b865823699dc7a8d5567507e8b87b14a7442e07f206 AS build
WORKDIR /app
RUN corepack enable
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
COPY apps/reviewer/package.json apps/reviewer/package.json
COPY apps/web/package.json apps/web/package.json
COPY packages/contracts/package.json packages/contracts/package.json
COPY packages/typescript-config/package.json packages/typescript-config/package.json
COPY packages/ui/package.json packages/ui/package.json
RUN pnpm install --frozen-lockfile
COPY apps/reviewer ./apps/reviewer
COPY apps/web ./apps/web
COPY packages ./packages
COPY .agents/skills/leverframe-ask/SKILL.md ./.agents/skills/leverframe-ask/SKILL.md
COPY .agents/skills/leverframe-ask/scripts/ask.py ./.agents/skills/leverframe-ask/scripts/ask.py
RUN pnpm --filter @repo/reviewer build \
&& pnpm --filter @repo/reviewer deploy --prod /app/reviewer-runtime \
&& pnpm --filter @repo/web build
# Next standalone tracing omits ESM files behind pnpm's @swc/helpers symlink.
RUN swc_helpers_source="$(find /app/node_modules/.pnpm -type d -path '*/node_modules/@swc/helpers' -print -quit)" \
&& test -n "$swc_helpers_source" \
&& swc_helpers_relative="${swc_helpers_source#/app/node_modules/}" \
&& swc_helpers_destination="/app/apps/web/.next/standalone/node_modules/${swc_helpers_relative}" \
&& mkdir -p "$swc_helpers_destination" \
&& cp -a "$swc_helpers_source/esm" "$swc_helpers_destination/"
FROM node:24.13.0-bookworm-slim@sha256:4660b1ca8b28d6d1906fd644abe34b2ed81d15434d26d845ef0aced307cf4b6f AS reviewer
ENV NODE_ENV=production
WORKDIR /app/apps/reviewer
RUN apt-get update \
&& apt-get install --yes --no-install-recommends ca-certificates \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build --chown=node:node /app/reviewer-runtime/ ./
USER node
EXPOSE 6571
CMD ["node", "dist/cli.js", "serve"]
FROM node:24.13.0-bookworm-slim@sha256:4660b1ca8b28d6d1906fd644abe34b2ed81d15434d26d845ef0aced307cf4b6f AS web
ENV NODE_ENV=production
ENV HOSTNAME=0.0.0.0
ENV PORT=6572
WORKDIR /app
COPY --from=build --chown=node:node /app/apps/web/.next/standalone/ ./
COPY --from=build --chown=node:node /app/apps/web/.next/static/ ./apps/web/.next/static/
COPY --from=build --chown=node:node /app/apps/web/public/ ./apps/web/public/
USER node
EXPOSE 6572
CMD ["node", "apps/web/server.js"]