FROM node:20 RUN mkdir /zeppelin RUN corepack enable RUN chown node:node /zeppelin USER node ARG API_URL # Install dependencies before copying over any other files RUN corepack prepare --activate pnpm@latest COPY --chown=node:node package.json pnpm-lock.yaml pnpm-workspace.yaml /zeppelin/ RUN mkdir /zeppelin/backend COPY --chown=node:node backend/package.json /zeppelin/backend/ RUN mkdir /zeppelin/shared COPY --chown=node:node shared/package.json /zeppelin/shared/ RUN mkdir /zeppelin/dashboard COPY --chown=node:node dashboard/package.json /zeppelin/dashboard/ RUN mkdir /zeppelin/revampdashboard COPY --chown=node:node revampdashboard/package.json /zeppelin/revampdashboard/ WORKDIR /zeppelin RUN pnpm i COPY --chown=node:node . /zeppelin # Build backend WORKDIR /zeppelin/backend RUN pnpm run build # Build dashboard WORKDIR /zeppelin/dashboard RUN pnpm run build WORKDIR /zeppelin/revampdashboard/ RUN pnpm run check RUN pnpm run build # Prune dev dependencies WORKDIR /zeppelin RUN pnpm prune --prod