1# syntax=docker/dockerfile:1 2# AI Software Factory — API service image. 3# NOTE: built as part of the pnpm workspace — the app expects node_modules 4# linked by `pnpm install` at the repo root (monorepo workspace, pnpm >= 9). 5# Usage: docker build -f apps/api/Dockerfile -t factory-api <repo-root> 6FROM node:20-alpine 7 8RUN corepack enable 9 10WORKDIR /repo 11 12# Install workspace dependencies (api + its workspace deps). 13COPY package.json pnpm-workspace.yaml turbo.json tsconfig.json ./ 14COPY apps/api/package.json apps/api/ 15RUN pnpm install --filter @factory/api... --frozen-lockfile=false 16 17# Prisma client (schema lives at the repo root; exec runs from apps/api). 18COPY prisma prisma/ 19RUN pnpm --filter @factory/api exec prisma generate --schema ../../prisma/schema.prisma 20 21# App source. 22COPY apps/api apps/api/ 23RUN pnpm --filter @factory/api... build 24 25ENV NODE_ENV=production \ 26 PORT=4000 27 28EXPOSE 4000 29 30CMD ["node", "apps/api/dist/main.js"] 31