# syntax=docker/dockerfile:1 # AI Software Factory — Web (Next.js 14 App Router) image. # NOTE: built as part of the pnpm workspace — the app expects node_modules # linked by `pnpm install` at the repo root (monorepo workspace, pnpm >= 9). # The @factory/* packages are consumed source-first (transpilePackages), so # no per-package build step is required. # Usage: docker build -f apps/web/Dockerfile -t factory-web FROM node:20-alpine RUN corepack enable WORKDIR /repo # Install workspace dependencies (web + its workspace deps). COPY package.json pnpm-workspace.yaml turbo.json tsconfig.json ./ COPY apps/web/package.json apps/web/ RUN pnpm install --filter @factory/web... --frozen-lockfile=false # @factory/* workspace packages are consumed from source (transpilePackages) # — copy them into the image so the source-first import graph resolves. COPY packages packages/ # App source. COPY apps/web apps/web/ RUN pnpm --filter @factory/web... build ENV NODE_ENV=production \ PORT=3000 EXPOSE 3000 CMD ["sh", "-c", "cd apps/web && node_modules/.bin/next start -p 3000"]