FROM node:20-alpine RUN npm install -g pnpm WORKDIR /app COPY --chown=node:node ./package.json ./pnpm-lock.yaml /app/ COPY --chown=node:node ./client/package.json ./client/pnpm-lock.yaml /client/ WORKDIR /client RUN NODE_ENV=development pnpm install COPY --chown=node:node ./server /app COPY --chown=node:node ./client /client RUN pnpm run build RUN cp -r /client/dist /app/dist WORKDIR /app RUN pnpm install --production --frozen-lockfile RUN chown -R node:node /app ENV NODE_ENV=production USER node EXPOSE 5287 CMD ["node", "index.js"]