YAS/apps/api/Dockerfile
YetAnotherSuite Dev 382ba97c84 fix: add package.json to API runner stage for ESM detection; move web port to 3001
- API Dockerfile: copy API's package.json (with 'type': 'module')
  into runner so Node.js treats .js files as ESM
- docker-compose: change web host port from 3000 to 3001 to
  avoid conflict with local dev server
2026-07-20 23:27:49 +02:00

26 lines
748 B
Docker

FROM node:22-alpine AS base
RUN corepack enable && corepack prepare pnpm@latest --activate
FROM base AS deps
WORKDIR /app
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml turbo.json ./
COPY tooling/ ./tooling/
COPY packages/ ./packages/
COPY apps/ ./apps/
RUN pnpm install --frozen-lockfile
FROM deps AS builder
WORKDIR /app
RUN pnpm --filter @yetanother/db exec prisma generate
RUN pnpm build --filter @yetanother/api
FROM node:22-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/apps/api/package.json ./package.json
COPY --from=builder /app/apps/api/dist ./dist
COPY --from=builder /app/node_modules ./node_modules
COPY --from=builder /app/packages/db/prisma ./prisma
EXPOSE 4000
CMD ["node", "dist/main.js"]