# syntax=docker/dockerfile:1 # AI Software Factory — API service 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). # Usage: docker build -f apps/api/Dockerfile -t factory-api FROM node:20-alpine RUN corepack enable WORKDIR /repo # Install workspace dependencies (api + its workspace deps). COPY package.json pnpm-workspace.yaml turbo.json tsconfig.json ./ COPY apps/api/package.json apps/api/ RUN pnpm install --filter @factory/api... --frozen-lockfile=false # Prisma client (schema lives at the repo root; exec runs from apps/api). COPY prisma prisma/ RUN pnpm --filter @factory/api exec prisma generate --schema ../../prisma/schema.prisma # App source. COPY apps/api apps/api/ RUN pnpm --filter @factory/api... build ENV NODE_ENV=production \ PORT=4000 EXPOSE 4000 CMD ["node", "apps/api/dist/main.js"]