FROM node:20-alpine AS base WORKDIR /app RUN corepack enable FROM base AS deps COPY package.json pnpm-workspace.yaml ./ COPY apps/server/package.json apps/server/package.json COPY apps/web/package.json apps/web/package.json RUN pnpm install --frozen-lockfile=false --prod=false FROM deps AS build COPY . . RUN pnpm -C apps/web build RUN pnpm -C apps/server build FROM base AS prod ENV NODE_ENV=production WORKDIR /app COPY --from=deps /app/node_modules /app/node_modules COPY --from=deps /app/apps/server/node_modules /app/apps/server/node_modules COPY --from=build /app/apps/server/dist /app/apps/server/dist COPY --from=build /app/apps/server/package.json /app/apps/server/package.json COPY --from=build /app/apps/server/public /app/apps/server/public EXPOSE 3001 CMD ["node", "/app/apps/server/dist/index.js"]