# syntax=docker/dockerfile:1 FROM node:22-slim AS build ENV PNPM_HOME=/pnpm PATH=/pnpm:$PATH ENV NEXT_TELEMETRY_DISABLED=1 RUN corepack enable WORKDIR /repo COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.base.json ./ COPY apps/api/package.json apps/api/ COPY apps/web/package.json apps/web/ COPY packages/contracts/package.json packages/contracts/ COPY packages/i18n/package.json packages/i18n/ COPY packages/rules/package.json packages/rules/ RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm install --frozen-lockfile COPY packages packages COPY apps/web apps/web COPY docs docs RUN pnpm --filter @impuestos/web build FROM node:22-slim AS runtime ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 ENV PORT=3000 HOSTNAME=0.0.0.0 WORKDIR /app # `output: standalone` emits a server with only the modules it actually imports. COPY --from=build --chown=node:node /repo/apps/web/.next/standalone ./ COPY --from=build --chown=node:node /repo/apps/web/.next/static ./apps/web/.next/static USER node EXPOSE 3000 CMD ["node", "apps/web/server.js"]