FROM node:20-alpine AS build WORKDIR /app COPY package.json package-lock.json ./ COPY shared/package.json shared/package.json COPY server/package.json server/package.json COPY client/package.json client/package.json RUN npm ci COPY . . RUN npm run build FROM node:20-alpine AS runtime WORKDIR /app ENV NODE_ENV=production COPY package.json package-lock.json ./ COPY shared/package.json shared/package.json COPY server/package.json server/package.json RUN npm ci --omit=dev --workspace=@notes/shared --workspace=@notes/server COPY --from=build /app/shared/dist shared/dist COPY --from=build /app/server/dist server/dist COPY --from=build /app/client/dist client/dist EXPOSE 3000 CMD ["node", "server/dist/index.js"]